fastlane 1.56.0 → 1.57.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/assets/report_template.xml.erb +3 -3
- data/lib/fastlane/actions/badge.rb +9 -1
- data/lib/fastlane/actions/changelog_from_git_commits.rb +5 -1
- data/lib/fastlane/actions/install_on_device.rb +80 -0
- data/lib/fastlane/actions/s3.rb +3 -3
- data/lib/fastlane/actions/update_app_identifier.rb +6 -0
- data/lib/fastlane/helper/git_helper.rb +4 -2
- data/lib/fastlane/helper/sh_helper.rb +6 -2
- data/lib/fastlane/junit_generator.rb +1 -0
- data/lib/fastlane/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6915ebe511946271b82ca544dc561dcebf771aa0
|
4
|
+
data.tar.gz: ae7fd9d61785da58b7d4386c7c0bb53c801918ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87efec434c9b094ed323fa09f391796f0a4066dbad0b774df1a2b22537e294a84cb01babcbee4fb86e73fb183ef1505727143c18b09d84a72b4ea0bf49817280
|
7
|
+
data.tar.gz: 79778563981d7b502ac7769bba74f682cd5a5fb855256e35c0ac182ba1b573055bf595455981fee4d9f02a201fda9fba49922fedcbad51ed9ffac0a1067567aa
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<testsuites
|
3
|
-
<testsuite name="
|
2
|
+
<testsuites>
|
3
|
+
<testsuite name="fastlane.lanes">
|
4
4
|
<% @steps.each_with_index do |step, index| %>
|
5
5
|
<% name = [index, step[:name]].join(": ") %>
|
6
|
-
<testcase name=<%= name.encode(:xml => :attr) %> time="<%= step[:time] %>">
|
6
|
+
<testcase classname="fastlane.lanes" name=<%= name.encode(:xml => :attr) %> time="<%= step[:time] %>">
|
7
7
|
<% if step[:error] %>
|
8
8
|
<failure message=<%= step[:error].encode(:xml => :attr).gsub("\n", " ") %> />
|
9
9
|
<% end %>
|
@@ -2,8 +2,16 @@ module Fastlane
|
|
2
2
|
module Actions
|
3
3
|
class BadgeAction < Action
|
4
4
|
def self.run(params)
|
5
|
+
Actions.verify_gem!('badge')
|
5
6
|
require 'badge'
|
6
|
-
|
7
|
+
options = {
|
8
|
+
dark: params[:dark],
|
9
|
+
custom: params[:custom],
|
10
|
+
no_badge: params[:no_badge],
|
11
|
+
shield: params[:shield],
|
12
|
+
alpha: params[:alpha]
|
13
|
+
}
|
14
|
+
Badge::Runner.new.run('.', options)
|
7
15
|
end
|
8
16
|
|
9
17
|
#####################################################
|
@@ -9,7 +9,7 @@ module Fastlane
|
|
9
9
|
if params[:between]
|
10
10
|
from, to = params[:between]
|
11
11
|
else
|
12
|
-
from = Actions.last_git_tag_name(params[:match_lightweight_tag])
|
12
|
+
from = Actions.last_git_tag_name(params[:match_lightweight_tag], params[:tag_match_pattern])
|
13
13
|
Helper.log.debug "Found the last Git tag: #{from}"
|
14
14
|
to = 'HEAD'
|
15
15
|
end
|
@@ -67,6 +67,10 @@ module Fastlane
|
|
67
67
|
optional: true,
|
68
68
|
default_value: '%B',
|
69
69
|
is_string: true),
|
70
|
+
FastlaneCore::ConfigItem.new(key: :tag_match_pattern,
|
71
|
+
env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_TAG_MATCH_PATTERN',
|
72
|
+
description: 'A glob(7) pattern to match against when finding the last git tag',
|
73
|
+
optional: true),
|
70
74
|
FastlaneCore::ConfigItem.new(key: :match_lightweight_tag,
|
71
75
|
env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_MATCH_LIGHTWEIGHT_TAG',
|
72
76
|
description: 'Whether or not to match a lightweight tag when searching for the last one',
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
class InstallOnDeviceAction < Action
|
6
|
+
def self.run(params)
|
7
|
+
unless Helper.test?
|
8
|
+
raise "ios-deploy not installed, see https://github.com/phonegap/ios-deploy for instructions".red if `which ios-deploy`.length == 0
|
9
|
+
end
|
10
|
+
taxi_cmd = [
|
11
|
+
"ios-deploy",
|
12
|
+
params[:extra],
|
13
|
+
"--bundle",
|
14
|
+
params[:ipa]
|
15
|
+
]
|
16
|
+
taxi_cmd << "--no-wifi" if params[:skip_wifi]
|
17
|
+
taxi_cmd << ["--id", params[:device_id]] if params[:device_id]
|
18
|
+
return taxi_cmd.join(" ") if Helper.test?
|
19
|
+
Actions.sh(taxi_cmd.join(" "))
|
20
|
+
Helper.log.info "Deployed #{params[:ipa]} to device!"
|
21
|
+
end
|
22
|
+
|
23
|
+
#####################################################
|
24
|
+
# @!group Documentation
|
25
|
+
#####################################################
|
26
|
+
|
27
|
+
def self.description
|
28
|
+
"Installs an .ipa file on a connected iOS-device via usb or wifi"
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.available_options
|
32
|
+
[
|
33
|
+
FastlaneCore::ConfigItem.new(key: :extra,
|
34
|
+
short_option: "-X",
|
35
|
+
env_name: "FL_IOD_EXTRA",
|
36
|
+
description: "Extra Commandline arguments passed to ios-deploy",
|
37
|
+
optional: true,
|
38
|
+
is_string: true
|
39
|
+
),
|
40
|
+
FastlaneCore::ConfigItem.new(key: :device_id,
|
41
|
+
short_option: "-d",
|
42
|
+
env_name: "FL_IOD_DEVICE_ID",
|
43
|
+
description: "id of the device / if not set defaults to first found device",
|
44
|
+
optional: true,
|
45
|
+
is_string: true
|
46
|
+
),
|
47
|
+
FastlaneCore::ConfigItem.new(key: :skip_wifi,
|
48
|
+
short_option: "-w",
|
49
|
+
env_name: "FL_IOD_WIFI",
|
50
|
+
description: "Do not search for devices via WiFi",
|
51
|
+
optional: true,
|
52
|
+
is_string: false
|
53
|
+
),
|
54
|
+
FastlaneCore::ConfigItem.new(key: :ipa,
|
55
|
+
short_option: "-i",
|
56
|
+
env_name: "FL_IOD_IPA",
|
57
|
+
description: "The IPA file to put on the device",
|
58
|
+
optional: true,
|
59
|
+
is_string: true,
|
60
|
+
default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] || Dir["*.ipa"].first,
|
61
|
+
verify_block: proc do |value|
|
62
|
+
unless Helper.test?
|
63
|
+
raise "Could not find ipa file at path '#{value}'" unless File.exist? value
|
64
|
+
raise "'#{value}' doesn't seem to be an ipa file" unless value.end_with? ".ipa"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
)
|
68
|
+
]
|
69
|
+
end
|
70
|
+
|
71
|
+
def self.authors
|
72
|
+
["hjanuschka"]
|
73
|
+
end
|
74
|
+
|
75
|
+
def self.is_supported?(platform)
|
76
|
+
true
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
data/lib/fastlane/actions/s3.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# rubocop:disable Metrics/PerceivedComplexity
|
2
1
|
# rubocop:disable Metrics/AbcSize
|
3
2
|
require 'fastlane/erb_template_helper'
|
4
3
|
require 'ostruct'
|
@@ -85,13 +84,15 @@ module Fastlane
|
|
85
84
|
url_part = expand_path_with_substitutions_from_ipa_plist( ipa_file, s3_path )
|
86
85
|
ipa_file_name = File.basename(ipa_file)
|
87
86
|
ipa_url = "https://#{s3_subdomain}.amazonaws.com/#{s3_bucket}/#{url_part}#{ipa_file_name}"
|
88
|
-
dsym_url = "https://#{s3_subdomain}.amazonaws.com/#{s3_bucket}/#{url_part}#{dsym_file}" if dsym_file
|
89
87
|
|
90
88
|
# Setting action and environment variables
|
91
89
|
Actions.lane_context[SharedValues::S3_IPA_OUTPUT_PATH] = ipa_url
|
92
90
|
ENV[SharedValues::S3_IPA_OUTPUT_PATH.to_s] = ipa_url
|
93
91
|
|
94
92
|
if dsym_file
|
93
|
+
dsym_file_name = File.basename(dsym_file)
|
94
|
+
dsym_url = "https://#{s3_subdomain}.amazonaws.com/#{s3_bucket}/#{url_part}#{dsym_file_name}"
|
95
|
+
|
95
96
|
Actions.lane_context[SharedValues::S3_DSYM_OUTPUT_PATH] = dsym_url
|
96
97
|
ENV[SharedValues::S3_DSYM_OUTPUT_PATH.to_s] = dsym_url
|
97
98
|
end
|
@@ -353,5 +354,4 @@ module Fastlane
|
|
353
354
|
end
|
354
355
|
end
|
355
356
|
end
|
356
|
-
# rubocop:enable Metrics/PerceivedComplexity
|
357
357
|
# rubocop:enable Metrics/AbcSize
|
@@ -5,6 +5,7 @@ module Fastlane
|
|
5
5
|
require 'plist'
|
6
6
|
require 'xcodeproj'
|
7
7
|
|
8
|
+
info_plist_key = 'INFOPLIST_FILE'
|
8
9
|
identifier_key = 'PRODUCT_BUNDLE_IDENTIFIER'
|
9
10
|
|
10
11
|
# Read existing plist file
|
@@ -22,6 +23,11 @@ module Fastlane
|
|
22
23
|
configs = project.objects.select { |obj| obj.isa == 'XCBuildConfiguration' && !obj.build_settings[identifier_key].nil? }
|
23
24
|
raise "Info plist uses $(#{identifier_key}), but xcodeproj does not".red unless configs.count > 0
|
24
25
|
|
26
|
+
unless Helper.test?
|
27
|
+
configs = configs.select { |obj| obj.build_settings[info_plist_key] == params[:plist_path] }
|
28
|
+
raise "Xcodeproj doesn't have configuration with info plist #{params[:plist_path]}.".red unless configs.count > 0
|
29
|
+
end
|
30
|
+
|
25
31
|
# For each of the build configurations, set app identifier
|
26
32
|
configs.each do |c|
|
27
33
|
c.build_settings[identifier_key] = params[:app_identifier]
|
@@ -12,10 +12,12 @@ module Fastlane
|
|
12
12
|
nil
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.last_git_tag_name(match_lightweight = true)
|
15
|
+
def self.last_git_tag_name(match_lightweight = true, tag_match_pattern = nil)
|
16
|
+
tag_pattern_param = tag_match_pattern ? "=#{tag_match_pattern.shellescape}" : ''
|
17
|
+
|
16
18
|
command = ['git describe']
|
17
19
|
command << '--tags' if match_lightweight
|
18
|
-
command <<
|
20
|
+
command << "`git rev-list --tags#{tag_pattern_param} --max-count=1`"
|
19
21
|
Actions.sh(command.join(' '), log: false).chomp
|
20
22
|
rescue
|
21
23
|
nil
|
@@ -35,8 +35,12 @@ module Fastlane
|
|
35
35
|
|
36
36
|
if exit_status != 0
|
37
37
|
# this will also append the output to the exception
|
38
|
-
|
39
|
-
|
38
|
+
if log
|
39
|
+
message = "Exit status of command '#{command}' was #{exit_status} instead of 0."
|
40
|
+
message += "\n#{result}"
|
41
|
+
else
|
42
|
+
message = "Shell command exited with exit status #{exit_status} instead of 0."
|
43
|
+
end
|
40
44
|
UI.crash!(message)
|
41
45
|
end
|
42
46
|
end
|
@@ -3,6 +3,7 @@ module Fastlane
|
|
3
3
|
def self.generate(results)
|
4
4
|
# JUnit file documentation: http://llg.cubic.org/docs/junit/
|
5
5
|
# And http://nelsonwells.net/2012/09/how-jenkins-ci-parses-and-displays-junit-output/
|
6
|
+
# And http://windyroad.com.au/dl/Open%20Source/JUnit.xsd
|
6
7
|
|
7
8
|
containing_folder = ENV['FL_REPORT_PATH'] || Fastlane::FastlaneFolder.path || Dir.pwd
|
8
9
|
path = File.join(containing_folder, 'report.xml')
|
data/lib/fastlane/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.57.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: krausefx-shenzhen
|
@@ -294,7 +294,7 @@ dependencies:
|
|
294
294
|
requirements:
|
295
295
|
- - ">="
|
296
296
|
- !ruby/object:Gem::Version
|
297
|
-
version: 1.3.
|
297
|
+
version: 1.3.1
|
298
298
|
- - "<"
|
299
299
|
- !ruby/object:Gem::Version
|
300
300
|
version: 2.0.0
|
@@ -304,7 +304,7 @@ dependencies:
|
|
304
304
|
requirements:
|
305
305
|
- - ">="
|
306
306
|
- !ruby/object:Gem::Version
|
307
|
-
version: 1.3.
|
307
|
+
version: 1.3.1
|
308
308
|
- - "<"
|
309
309
|
- !ruby/object:Gem::Version
|
310
310
|
version: 2.0.0
|
@@ -658,6 +658,7 @@ files:
|
|
658
658
|
- lib/fastlane/actions/import_from_git.rb
|
659
659
|
- lib/fastlane/actions/increment_build_number.rb
|
660
660
|
- lib/fastlane/actions/increment_version_number.rb
|
661
|
+
- lib/fastlane/actions/install_on_device.rb
|
661
662
|
- lib/fastlane/actions/install_xcode_plugin.rb
|
662
663
|
- lib/fastlane/actions/installr.rb
|
663
664
|
- lib/fastlane/actions/ipa.rb
|