fastlane 2.97.0 → 2.98.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +72 -72
  3. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -0
  4. data/fastlane/lib/fastlane/actions/carthage.rb +3 -3
  5. data/fastlane/lib/fastlane/actions/docs/build_ios_app.md +6 -6
  6. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +8 -8
  7. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +13 -5
  8. data/fastlane/lib/fastlane/actions/docs/get_provisioning_profile.md +54 -18
  9. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +39 -21
  10. data/fastlane/lib/fastlane/actions/docs/run_tests.md +14 -8
  11. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +5 -5
  12. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -1
  13. data/fastlane/lib/fastlane/actions/mailgun.rb +15 -2
  14. data/fastlane/lib/fastlane/actions/modify_services.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/nexus_upload.rb +63 -15
  16. data/fastlane/lib/fastlane/actions/unlock_keychain.rb +1 -0
  17. data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +26 -0
  18. data/fastlane/lib/fastlane/plugins/plugin_search.rb +1 -0
  19. data/fastlane/lib/fastlane/plugins/plugin_update_manager.rb +1 -0
  20. data/fastlane/lib/fastlane/version.rb +1 -1
  21. data/fastlane/swift/Deliverfile.swift +1 -1
  22. data/fastlane/swift/Fastlane.swift +20 -10
  23. data/fastlane/swift/Gymfile.swift +1 -1
  24. data/fastlane/swift/Matchfile.swift +1 -1
  25. data/fastlane/swift/Precheckfile.swift +1 -1
  26. data/fastlane/swift/Scanfile.swift +1 -1
  27. data/fastlane/swift/Screengrabfile.swift +1 -1
  28. data/fastlane/swift/Snapshotfile.swift +1 -1
  29. data/pilot/lib/pilot/build_manager.rb +9 -0
  30. data/pilot/lib/pilot/options.rb +6 -0
  31. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +9 -0
  32. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +5 -2
  33. data/spaceship/lib/spaceship/portal/app_service.rb +3 -0
  34. data/spaceship/lib/spaceship/test_flight/build.rb +5 -0
  35. data/supply/lib/supply/client.rb +1 -0
  36. metadata +19 -25
@@ -18,4 +18,4 @@ class Gymfile: GymfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.97.0
21
+ // Generated with fastlane 2.98.0
@@ -18,4 +18,4 @@ class Matchfile: MatchfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.97.0
21
+ // Generated with fastlane 2.98.0
@@ -18,4 +18,4 @@ class Precheckfile: PrecheckfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.97.0
21
+ // Generated with fastlane 2.98.0
@@ -18,4 +18,4 @@ class Scanfile: ScanfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.97.0
21
+ // Generated with fastlane 2.98.0
@@ -18,4 +18,4 @@ class Screengrabfile: ScreengrabfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.97.0
21
+ // Generated with fastlane 2.98.0
@@ -18,4 +18,4 @@ class Snapshotfile: SnapshotfileProtocol {
18
18
 
19
19
 
20
20
 
21
- // Generated with fastlane 2.97.0
21
+ // Generated with fastlane 2.98.0
@@ -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 🚀")
@@ -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
@@ -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.97.0
4
+ version: 2.98.0
5
5
  platform: ruby
6
6
  authors:
7
- - Danielle Tomlinson
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
- - Aaron Brager
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
- - Stefan Natchev
25
- - Helmut Januschka
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-04 00:00:00.000000000 Z
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: 1.0.0
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: 1.0.0
85
+ version: 0.2.8
92
86
  - !ruby/object:Gem::Dependency
93
87
  name: terminal-notifier
94
88
  requirement: !ruby/object:Gem::Requirement