fastlane 2.97.0 → 2.98.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +72 -72
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -0
- data/fastlane/lib/fastlane/actions/carthage.rb +3 -3
- data/fastlane/lib/fastlane/actions/docs/build_ios_app.md +6 -6
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +8 -8
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +13 -5
- data/fastlane/lib/fastlane/actions/docs/get_provisioning_profile.md +54 -18
- data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +39 -21
- data/fastlane/lib/fastlane/actions/docs/run_tests.md +14 -8
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +5 -5
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -1
- data/fastlane/lib/fastlane/actions/mailgun.rb +15 -2
- data/fastlane/lib/fastlane/actions/modify_services.rb +1 -1
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +63 -15
- data/fastlane/lib/fastlane/actions/unlock_keychain.rb +1 -0
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +26 -0
- data/fastlane/lib/fastlane/plugins/plugin_search.rb +1 -0
- data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +1 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +20 -10
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/pilot/lib/pilot/build_manager.rb +9 -0
- data/pilot/lib/pilot/options.rb +6 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +9 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +5 -2
- data/spaceship/lib/spaceship/portal/app_service.rb +3 -0
- data/spaceship/lib/spaceship/test_flight/build.rb +5 -0
- data/supply/lib/supply/client.rb +1 -0
- metadata +19 -25
@@ -96,6 +96,15 @@ module Pilot
|
|
96
96
|
build.auto_notify_enabled = config[:notify_external_testers]
|
97
97
|
|
98
98
|
return if config[:skip_submission]
|
99
|
+
if options[:reject_build_waiting_for_review]
|
100
|
+
waiting_for_review_build = Spaceship::TestFlight::Build.all_waiting_for_review(app_id: build.app_id, platform: fetch_app_platform).first
|
101
|
+
unless waiting_for_review_build.nil?
|
102
|
+
UI.important("Another build is already in review. Going to expire that build and submit the new one.")
|
103
|
+
UI.important("Expiring build: #{waiting_for_review_build.train_version} - #{waiting_for_review_build.build_version}")
|
104
|
+
waiting_for_review_build.expire!
|
105
|
+
UI.success("Expired previous build: #{waiting_for_review_build.train_version} - #{waiting_for_review_build.build_version}")
|
106
|
+
end
|
107
|
+
end
|
99
108
|
distribute_build(build, options)
|
100
109
|
type = options[:distribute_external] ? 'External' : 'Internal'
|
101
110
|
UI.success("Successfully distributed build to #{type} testers 🚀")
|
data/pilot/lib/pilot/options.rb
CHANGED
@@ -189,6 +189,12 @@ module Pilot
|
|
189
189
|
env_name: "PILOT_WAIT_FOR_UPLOADED_BUILD",
|
190
190
|
description: "Use version info from uploaded ipa file to determine what build to use for distribution. If set to false, latest processing or any latest build will be used",
|
191
191
|
is_string: false,
|
192
|
+
default_value: false),
|
193
|
+
FastlaneCore::ConfigItem.new(key: :reject_build_waiting_for_review,
|
194
|
+
short_option: "-b",
|
195
|
+
env_name: "PILOT_REJECT_PREVIOUS_BUILD",
|
196
|
+
description: "Expire previous if it's 'waiting for review'",
|
197
|
+
is_string: false,
|
192
198
|
default_value: false)
|
193
199
|
]
|
194
200
|
end
|
@@ -152,6 +152,15 @@ module Snapshot
|
|
152
152
|
def retry_tests(retries, command, language, locale, launch_args, devices)
|
153
153
|
UI.important("Retrying on devices: #{devices.join(', ')}")
|
154
154
|
UI.important("Number of retries remaining: #{launcher_config.number_of_retries - retries - 1}")
|
155
|
+
|
156
|
+
# Make sure all needed directories exist for next retry
|
157
|
+
# `copy_screenshots` in `cleanup_after_failure` can delete some needed directories
|
158
|
+
# https://github.com/fastlane/fastlane/issues/10786
|
159
|
+
prepare_directories_for_launch(language: language, locale: locale, launch_arguments: launch_args)
|
160
|
+
|
161
|
+
# Clear errors so a successful retry isn't reported as an over failure
|
162
|
+
self.collected_errors = []
|
163
|
+
|
155
164
|
execute(retries + 1, command: command, language: language, locale: locale, launch_args: launch_args, devices: devices)
|
156
165
|
end
|
157
166
|
|
@@ -27,6 +27,11 @@ module Snapshot
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def prepare_for_launch(device_types, language, locale, launch_arguments)
|
30
|
+
prepare_directories_for_launch(language: language, locale: locale, launch_arguments: launch_arguments)
|
31
|
+
prepare_simulators_for_launch(device_types, language: language, locale: locale)
|
32
|
+
end
|
33
|
+
|
34
|
+
def prepare_directories_for_launch(language: nil, locale: nil, launch_arguments: nil)
|
30
35
|
screenshots_path = TestCommandGenerator.derived_data_path
|
31
36
|
FileUtils.rm_rf(File.join(screenshots_path, "Logs"))
|
32
37
|
FileUtils.rm_rf(screenshots_path) if launcher_config.clean
|
@@ -38,8 +43,6 @@ module Snapshot
|
|
38
43
|
File.write(File.join(CACHE_DIR, "language.txt"), language)
|
39
44
|
File.write(File.join(CACHE_DIR, "locale.txt"), locale || "")
|
40
45
|
File.write(File.join(CACHE_DIR, "snapshot-launch_arguments.txt"), launch_arguments.last)
|
41
|
-
|
42
|
-
prepare_simulators_for_launch(device_types, language: language, locale: locale)
|
43
46
|
end
|
44
47
|
|
45
48
|
def prepare_simulators_for_launch(device_types, language: nil, locale: nil)
|
@@ -40,9 +40,12 @@ module Spaceship
|
|
40
40
|
return m
|
41
41
|
end
|
42
42
|
|
43
|
+
AccessWiFi = AppService.new_service("AWEQ28MY3E")
|
43
44
|
AppGroup = AppService.new_service("APG3427HIY")
|
44
45
|
ApplePay = AppService.new_service("OM633U5T5G")
|
45
46
|
AssociatedDomains = AppService.new_service("SKC3T5S89Y")
|
47
|
+
ClassKit = AppService.new_service("PKTJAN2017")
|
48
|
+
AutoFillCredential = AppService.new_service("CPEQ28MX4E")
|
46
49
|
DataProtection = AppService.new_service("dataProtection", values: { off: "", complete: "complete", unless_open: "unlessopen", until_first_auth: "untilfirstauth" })
|
47
50
|
GameCenter = AppService.new_service("gameCenter")
|
48
51
|
HealthKit = AppService.new_service("HK421J6T7P")
|
@@ -119,6 +119,11 @@ module Spaceship
|
|
119
119
|
all(app_id: app_id, platform: platform, retry_count: retry_count).find_all(&:processing?)
|
120
120
|
end
|
121
121
|
|
122
|
+
# Just the builds, as a flat array, that are waiting for beta review
|
123
|
+
def self.all_waiting_for_review(app_id: nil, platform: nil, retry_count: 0)
|
124
|
+
all(app_id: app_id, platform: platform, retry_count: retry_count).select { |app| app.external_state == 'testflight.build.state.review.waiting' }
|
125
|
+
end
|
126
|
+
|
122
127
|
def self.latest(app_id: nil, platform: nil)
|
123
128
|
all(app_id: app_id, platform: platform).sort_by(&:upload_date).last
|
124
129
|
end
|
data/supply/lib/supply/client.rb
CHANGED
@@ -70,6 +70,7 @@ module Supply
|
|
70
70
|
Google::Apis::ClientOptions.default.application_version = Fastlane::VERSION
|
71
71
|
Google::Apis::ClientOptions.default.read_timeout_sec = 300
|
72
72
|
Google::Apis::ClientOptions.default.open_timeout_sec = 300
|
73
|
+
Google::Apis::ClientOptions.default.send_timeout_sec = 300
|
73
74
|
Google::Apis::RequestOptions.default.retries = 5
|
74
75
|
|
75
76
|
self.android_publisher = Androidpublisher::AndroidPublisherService.new
|
metadata
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.98.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Stefan Natchev
|
8
|
+
- Jimmy Dee
|
9
|
+
- Maksym Grebenets
|
8
10
|
- Joshua Liebowitz
|
9
|
-
- Andrew McBurney
|
10
|
-
- Manu Wallner
|
11
11
|
- Jérôme Lacoste
|
12
|
-
-
|
12
|
+
- Helmut Januschka
|
13
|
+
- Matthew Ellis
|
13
14
|
- Kohki Miki
|
14
15
|
- Felix Krause
|
15
|
-
- Iulian Onofrei
|
16
|
-
- Fumiya Nakamura
|
17
|
-
- Maksym Grebenets
|
18
16
|
- Josh Holtz
|
19
|
-
- Jorge Revuelta H
|
20
|
-
- Matthew Ellis
|
21
|
-
- Jimmy Dee
|
22
|
-
- Luka Mirosevic
|
23
17
|
- Jan Piotrowski
|
24
|
-
-
|
25
|
-
-
|
18
|
+
- Danielle Tomlinson
|
19
|
+
- Aaron Brager
|
20
|
+
- Manu Wallner
|
21
|
+
- Jorge Revuelta H
|
26
22
|
- Olivier Halligon
|
23
|
+
- Fumiya Nakamura
|
24
|
+
- Iulian Onofrei
|
25
|
+
- Luka Mirosevic
|
26
|
+
- Andrew McBurney
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2018-06-
|
30
|
+
date: 2018-06-18 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -73,22 +73,16 @@ dependencies:
|
|
73
73
|
name: xcpretty
|
74
74
|
requirement: !ruby/object:Gem::Requirement
|
75
75
|
requirements:
|
76
|
-
- - "
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 0.2.4
|
79
|
-
- - "<"
|
76
|
+
- - "~>"
|
80
77
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
78
|
+
version: 0.2.8
|
82
79
|
type: :runtime
|
83
80
|
prerelease: false
|
84
81
|
version_requirements: !ruby/object:Gem::Requirement
|
85
82
|
requirements:
|
86
|
-
- - "
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: 0.2.4
|
89
|
-
- - "<"
|
83
|
+
- - "~>"
|
90
84
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
85
|
+
version: 0.2.8
|
92
86
|
- !ruby/object:Gem::Dependency
|
93
87
|
name: terminal-notifier
|
94
88
|
requirement: !ruby/object:Gem::Requirement
|