fastlane 2.18.3 → 2.19.0.beta.20170222010016

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b113c5764ae5b21122946e3bbe8bb097aae4296
4
- data.tar.gz: 147a7b7383c995af5dc460ba5e3d4ccf57c58297
3
+ metadata.gz: 1f9036c3e8f09d2613f7233cef08fe68106ff01b
4
+ data.tar.gz: 154bdc8e424c41b2faea3b863bdd9728075b4617
5
5
  SHA512:
6
- metadata.gz: d3f45a22f4b83404cbd72a34e2779387427d0e7363d418ada998e6e3bc3e55fc613fd3346cc896a3e95fafbcc20707e8eef2dcdce2aca2fc54f5df4b064308f5
7
- data.tar.gz: a3a69cdcd2e5a1e6083306ba03db5a3eb540d1a3ab18354db4481a1771b80ee7f895002fd8ce64a5c841c636a233a970ea97a44772fc1080e2464f26d84c69bd
6
+ metadata.gz: 08a93c416a1d39e971bae8396f34b1382e846780e5add9447a60822ec6c8d103d8a2067c80a8815a2b2114b917998b834568cabce3feea6b0520e8218a96ae7d
7
+ data.tar.gz: 7463168cc5e25e2cc2a76c4cdd0673fe1b0c5393fe3cd7d78f06a98f4968cca8d31d6e5dfc2b1a891479e80983d60c5d8c60df027b01a153154a4e31ce9257cf
@@ -39,7 +39,7 @@ module Deliver
39
39
  end
40
40
  else
41
41
  UI.message("Selecting the latest build...")
42
- build = wait_for_build(app)
42
+ build = FastlaneCore::BuildWatcher.wait_for_build(app, options[:app_platform], sleep_time)
43
43
  end
44
44
  UI.message("Selecting build #{build.train_version} (#{build.build_version})...")
45
45
 
@@ -48,40 +48,5 @@ module Deliver
48
48
 
49
49
  UI.success("Successfully selected build")
50
50
  end
51
-
52
- def wait_for_build(app)
53
- UI.user_error!("Could not find app with app identifier") unless app
54
-
55
- start = Time.now
56
-
57
- loop do
58
- build = find_build(app.latest_version.candidate_builds)
59
- return build if build.processing == false
60
-
61
- UI.message("Waiting iTunes Connect processing for build #{build.train_version} (#{build.build_version})... this might take a while...")
62
- if (Time.now - start) > (60 * 5)
63
- UI.message("")
64
- UI.message("You can tweet: \"iTunes Connect #iosprocessingtime #{((Time.now - start) / 60).round} minutes\"")
65
- end
66
- sleep 30
67
- end
68
- nil
69
- end
70
-
71
- def find_build(candidate_builds)
72
- build = nil
73
- candidate_builds.each do |b|
74
- if !build or b.upload_date > build.upload_date
75
- build = b
76
- end
77
- end
78
-
79
- unless build
80
- UI.error(candidate_builds)
81
- UI.crash!("Could not find build")
82
- end
83
-
84
- return build
85
- end
86
51
  end
87
52
  end
@@ -6,6 +6,8 @@ module Fastlane
6
6
 
7
7
  require 'frameit'
8
8
 
9
+ FastlaneCore::UpdateChecker.start_looking_for_update('frameit') unless Helper.is_test?
10
+
9
11
  UI.message("Framing screenshots at path #{config[:path]}")
10
12
 
11
13
  Dir.chdir(config[:path]) do
@@ -10,6 +10,7 @@ module Fastlane
10
10
 
11
11
  return if Helper.test?
12
12
 
13
+ FastlaneCore::UpdateChecker.start_looking_for_update('produce')
13
14
  Produce.config = params # we alread have the finished config
14
15
 
15
16
  Dir.chdir(FastlaneCore::FastlaneFolder.path || Dir.pwd) do
@@ -5,6 +5,8 @@ module Fastlane
5
5
  require 'supply'
6
6
  require 'supply/options'
7
7
 
8
+ FastlaneCore::UpdateChecker.start_looking_for_update('supply') unless Helper.is_test?
9
+
8
10
  all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
9
11
  if all_apk_paths.length > 1
10
12
  params[:apk_paths] ||= all_apk_paths
@@ -22,8 +22,6 @@ module Fastlane
22
22
  print_slow_fastlane_warning
23
23
  end
24
24
 
25
- FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
26
-
27
25
  ARGV.unshift("spaceship") if ARGV.first == "spaceauth"
28
26
  tool_name = ARGV.first ? ARGV.first.downcase : nil
29
27
 
@@ -64,8 +62,6 @@ module Fastlane
64
62
  require "fastlane/commands_generator"
65
63
  Fastlane::CommandsGenerator.start
66
64
  end
67
- ensure
68
- FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
69
65
  end
70
66
 
71
67
  # Since fastlane also supports the rocket and biceps emoji as executable
@@ -30,7 +30,7 @@ module Fastlane
30
30
  $stdout = out_channel
31
31
  $stderr = out_channel
32
32
  end
33
-
33
+ FastlaneCore::UpdateChecker.start_looking_for_update('fastlane')
34
34
  Fastlane.load_actions
35
35
  FastlaneCore::Swag.stop_loader
36
36
  # do not use "include" as it may be some where in the commandline where "env" is required, therefore explicit index->0
@@ -41,6 +41,7 @@ module Fastlane
41
41
  end
42
42
  self.new.run
43
43
  ensure
44
+ FastlaneCore::UpdateChecker.show_update_status('fastlane', Fastlane::VERSION)
44
45
  Fastlane::PluginUpdateManager.show_update_status
45
46
  if FastlaneCore::Globals.capture_output?
46
47
  FastlaneCore::Globals.captured_output = Helper.strip_ansi_colors($stdout.string)
@@ -1,4 +1,4 @@
1
1
  module Fastlane
2
- VERSION = '2.18.3'.freeze
2
+ VERSION = '2.19.0.beta.20170222010016'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  end
@@ -5,6 +5,7 @@ require 'fastlane_core/globals'
5
5
  # Ruby monkey-patches - should be before almost all else
6
6
  require 'fastlane_core/core_ext/string'
7
7
 
8
+ require 'fastlane_core/build_watcher'
8
9
  require 'fastlane_core/env'
9
10
  require 'fastlane_core/feature/feature'
10
11
  require 'fastlane_core/features'
@@ -0,0 +1,80 @@
1
+ module FastlaneCore
2
+ class BuildWatcher
3
+ def self.find_build(app = nil)
4
+ build = nil
5
+ app.latest_version.candidate_builds.each do |b|
6
+ if !build or b.upload_date > build.upload_date
7
+ build = b
8
+ end
9
+ end
10
+ unless build
11
+ UI.user_error!("No processing builds available for app #{app.bundle_id}")
12
+ end
13
+ return build
14
+ end
15
+
16
+ def self.wait_for_train(app = nil, platform = "ios", sleep_time = 30)
17
+ loop do
18
+ sleep(sleep_time)
19
+ if app.build_trains(platform: platform).count == 0
20
+ UI.message("New application; waiting for build train to appear on iTunes Connect")
21
+ else
22
+ break
23
+ end
24
+ end
25
+ end
26
+
27
+ def self.wait_for_build(app = nil, platform = "ios", sleep_time = 0)
28
+ start_time = Time.now
29
+ UI.user_error!("Could not find app with app identifier #{app.bundle_id}") unless app
30
+ # if this is a new version/app wait for train to show up.
31
+ if app.build_trains(platform: platform).count == 0
32
+ self.class.wait_for_train(app, platform, sleep_time)
33
+ end
34
+
35
+ latest_build = nil
36
+ loop do
37
+ if sleep_time > 0
38
+ sleep(sleep_time)
39
+ else
40
+ return nil
41
+ end
42
+ builds = app.all_processing_builds(platform: platform)
43
+ break if builds.count == 0
44
+ latest_build = builds.last
45
+ UI.message("Waiting for iTunes Connect to finish processing the new build (#{latest_build.train_version} - #{latest_build.build_version})")
46
+ end
47
+
48
+ UI.user_error!("Error receiving the newly uploaded binary, please check iTunes Connect") if latest_build.nil?
49
+ full_build = nil
50
+
51
+ while full_build.nil? || full_build.processing
52
+ # The build's processing state should go from true to false, and be done. But sometimes it goes true -> false ->
53
+ # true -> false, where the second true is transient. This causes a spurious failure. Find build by build_version
54
+ # and ensure it's not processing before proceeding - it had to have already been false before, to get out of the
55
+ # previous loop.
56
+ full_build = app.build_trains(platform: platform)[latest_build.train_version].builds.find do |b|
57
+ b.build_version == latest_build.build_version
58
+ end
59
+ if sleep_time > 0
60
+ UI.message("Waiting for iTunes Connect to finish processing the new build (#{latest_build.train_version} - #{latest_build.build_version})")
61
+ sleep(sleep_time)
62
+ else
63
+ return nil
64
+ end
65
+ end
66
+
67
+ if full_build && !full_build.processing && full_build.valid
68
+ minutes = ((Time.now - start_time) / 60).round
69
+ UI.success("Successfully finished processing the build")
70
+ UI.message("You can now tweet: ")
71
+ UI.important("iTunes Connect #iosprocessingtime #{minutes} minutes")
72
+ return full_build
73
+ else
74
+ UI.user_error!("Error: Seems like iTunes Connect didn't properly pre-process the binary")
75
+ end
76
+ end
77
+
78
+ private_class_method :wait_for_train
79
+ end
80
+ end
@@ -120,22 +120,6 @@ Instead, you may verify the file is valid using OpenSSL:
120
120
 
121
121
  openssl pkcs12 -info -in my.p12
122
122
 
123
- If you need the `p12` in your keychain, perhaps to test push with an app like [Knuff](https://github.com/KnuffApp/Knuff) or [Pusher](https://github.com/noodlewerk/NWPusher), you can use `openssl` to export the `p12` to `pem` and back to `p12`:
124
-
125
- % openssl pkcs12 -in my.p12 -out my.pem
126
- Enter Import Password:
127
- <hit enter: the p12 has no password>
128
- MAC verified OK
129
- Enter PEM pass phrase:
130
- <enter a temporary password to encrypt the pem file>
131
-
132
- % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12
133
- Enter pass phrase for temp.pem:
134
- <enter the temporary password to decrypt the pem file>
135
-
136
- Enter Export Password:
137
- <enter a password for encrypting the new p12 file>
138
-
139
123
  ##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
140
124
 
141
125
  ## Environment Variables
@@ -31,8 +31,7 @@ module Pilot
31
31
  end
32
32
 
33
33
  UI.message("If you want to skip waiting for the processing to be finished, use the `skip_waiting_for_build_processing` option")
34
- uploaded_build = wait_for_processing_build(options, platform) # this might take a while
35
-
34
+ uploaded_build = FastlaneCore::BuildWatcher.wait_for_build(app, platform, config[:wait_processing_interval].to_i)
36
35
  distribute(options, uploaded_build)
37
36
  end
38
37
 
@@ -124,71 +123,6 @@ module Pilot
124
123
  options[:changelog].to_s.length > 0 or options[:beta_app_description].to_s.length > 0 or options[:beta_app_feedback_email].to_s.length > 0
125
124
  end
126
125
 
127
- # This method will takes care of checking for the processing builds every few seconds
128
- # @return [Build] The build that we just uploaded
129
- def wait_for_processing_build(options, platform)
130
- # the upload date of the new buid
131
- # we use it to identify the build
132
- start = Time.now
133
- wait_processing_interval = config[:wait_processing_interval].to_i
134
- latest_build = nil
135
- UI.message("Waiting for iTunes Connect to process the new build")
136
- must_update_build_info = config[:update_build_info_on_upload]
137
- loop do
138
- sleep(wait_processing_interval)
139
-
140
- # before we look for processing builds, we need to ensure that there
141
- # is a build train for this application; new applications don't
142
- # build trains right away, and if we don't do this check, we will
143
- # get break out of this loop and then generate an error later when we
144
- # have a nil build
145
- if app.build_trains(platform: platform).count == 0
146
- UI.message("New application; waiting for build train to appear on iTunes Connect")
147
- else
148
- builds = app.all_processing_builds(platform: platform)
149
- break if builds.count == 0
150
- latest_build = builds.last
151
-
152
- if latest_build.valid and must_update_build_info
153
- # Set the changelog and/or description if necessary
154
- if should_update_build_information(options)
155
- latest_build.update_build_information!(whats_new: options[:changelog], description: options[:beta_app_description], feedback_email: options[:beta_app_feedback_email])
156
- UI.success "Successfully set the changelog and/or description for build"
157
- end
158
- must_update_build_info = false
159
- end
160
-
161
- UI.message("Waiting for iTunes Connect to finish processing the new build (#{latest_build.train_version} - #{latest_build.build_version})")
162
- end
163
- end
164
-
165
- UI.user_error!("Error receiving the newly uploaded binary, please check iTunes Connect") if latest_build.nil?
166
- full_build = nil
167
-
168
- while full_build.nil? || full_build.processing
169
- # The build's processing state should go from true to false, and be done. But sometimes it goes true -> false ->
170
- # true -> false, where the second true is transient. This causes a spurious failure. Find build by build_version
171
- # and ensure it's not processing before proceeding - it had to have already been false before, to get out of the
172
- # previous loop.
173
- full_build = app.build_trains(platform: platform)[latest_build.train_version].builds.find do |b|
174
- b.build_version == latest_build.build_version
175
- end
176
-
177
- UI.message("Waiting for iTunes Connect to finish processing the new build (#{latest_build.train_version} - #{latest_build.build_version})")
178
- sleep(wait_processing_interval)
179
- end
180
-
181
- if full_build && !full_build.processing && full_build.valid
182
- minutes = ((Time.now - start) / 60).round
183
- UI.success("Successfully finished processing the build")
184
- UI.message("You can now tweet: ")
185
- UI.important("iTunes Connect #iosprocessingtime #{minutes} minutes")
186
- return full_build
187
- else
188
- UI.user_error!("Error: Seems like iTunes Connect didn't properly pre-process the binary")
189
- end
190
- end
191
-
192
126
  def distribute_build(uploaded_build, options)
193
127
  UI.message("Distributing new build to testers")
194
128
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.18.3
4
+ version: 2.19.0.beta.20170222010016
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2017-02-23 00:00:00.000000000 Z
17
+ date: 2017-02-22 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: slack-notifier
@@ -1023,6 +1023,7 @@ files:
1023
1023
  - fastlane_core/README.md
1024
1024
  - fastlane_core/lib/assets/XMLTemplate.xml.erb
1025
1025
  - fastlane_core/lib/fastlane_core.rb
1026
+ - fastlane_core/lib/fastlane_core/build_watcher.rb
1026
1027
  - fastlane_core/lib/fastlane_core/cert_checker.rb
1027
1028
  - fastlane_core/lib/fastlane_core/command_executor.rb
1028
1029
  - fastlane_core/lib/fastlane_core/configuration/commander_generator.rb
@@ -1179,7 +1180,6 @@ files:
1179
1180
  - sigh/lib/sigh/resign.rb
1180
1181
  - sigh/lib/sigh/runner.rb
1181
1182
  - snapshot/README.md
1182
- - snapshot/lib/.DS_Store
1183
1183
  - snapshot/lib/assets/SnapfileTemplate
1184
1184
  - snapshot/lib/assets/SnapshotHelper.swift
1185
1185
  - snapshot/lib/assets/SnapshotHelper2-3.swift
@@ -1296,22 +1296,22 @@ post_install_message:
1296
1296
  rdoc_options: []
1297
1297
  require_paths:
1298
1298
  - cert/lib
1299
- - credentials_manager/lib
1300
- - deliver/lib
1301
- - fastlane/lib
1302
- - fastlane_core/lib
1303
- - frameit/lib
1304
- - gym/lib
1305
- - match/lib
1299
+ - scan/lib
1306
1300
  - pem/lib
1301
+ - deliver/lib
1302
+ - spaceship/lib
1307
1303
  - pilot/lib
1308
- - produce/lib
1309
- - scan/lib
1310
- - screengrab/lib
1311
1304
  - sigh/lib
1312
1305
  - snapshot/lib
1313
- - spaceship/lib
1306
+ - credentials_manager/lib
1314
1307
  - supply/lib
1308
+ - frameit/lib
1309
+ - match/lib
1310
+ - gym/lib
1311
+ - fastlane_core/lib
1312
+ - fastlane/lib
1313
+ - produce/lib
1314
+ - screengrab/lib
1315
1315
  required_ruby_version: !ruby/object:Gem::Requirement
1316
1316
  requirements:
1317
1317
  - - ">="
@@ -1319,15 +1319,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1319
1319
  version: 2.0.0
1320
1320
  required_rubygems_version: !ruby/object:Gem::Requirement
1321
1321
  requirements:
1322
- - - ">="
1322
+ - - ">"
1323
1323
  - !ruby/object:Gem::Version
1324
- version: '0'
1324
+ version: 1.3.1
1325
1325
  requirements: []
1326
1326
  rubyforge_project:
1327
- rubygems_version: 2.5.1
1327
+ rubygems_version: 2.4.5.2
1328
1328
  signing_key:
1329
1329
  specification_version: 4
1330
1330
  summary: The easiest way to automate beta deployments and releases for your iOS and
1331
1331
  Android apps
1332
1332
  test_files: []
1333
- has_rdoc:
Binary file