pilot 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c404b05ec6dbe3ae48c73c02720aa682ed62e0c3
4
- data.tar.gz: 6f578d90fdc214bb39298ac4291b91842e30fbcf
3
+ metadata.gz: 2efe38c09c39325f3cb29ad7bff24eabcf2730ff
4
+ data.tar.gz: 214a5e55d77bd2f319b45196f87742078f52b167
5
5
  SHA512:
6
- metadata.gz: 311db9f270f1c637b1ce301aeda22128efd14d2212f736d8ba9747cd43e7282e82e59e51b1ee181ba07a2af1d247184e6bfb87a49e675d3454538ae43ba36b27
7
- data.tar.gz: 1a7a0f58d4de7fac32e305f2c2ee7ce6c93c997a609034014760271a0ad527bc69bbbe93cdad109532c84e1622958fb2dcd2f74dbc79f3627fa6f2e8063c76b4
6
+ metadata.gz: 8b454c8620476fb558cf17e461662c70dfbd077c14e751a3555d7a8e14bf0f28eb112d3036313e16f215c599e392d48f7abb432f2188bebab4739d0386394591
7
+ data.tar.gz: 9bb3d5c32af40d7c39082fd898f35141f87d7830032cac3591fabf3391ea7300005b7bbad1605d4c6c4c552250dbb156cb5d4d341a58f83d940681930257c570
data/README.md CHANGED
@@ -82,6 +82,12 @@ You'll be asked for any missing information. Additionally, you can pass all kind
82
82
  pilot --help
83
83
  ```
84
84
 
85
+ You can pass a changelog using
86
+
87
+ ```
88
+ pilot upload --changelog "Something that is new here"
89
+ ```
90
+
85
91
  You can also skip the submission of the binary, which means, the `ipa` file will only be uploaded and not distributed to testers:
86
92
 
87
93
  ```
@@ -241,6 +247,14 @@ If you run into any issues you can use the `verbose` mode to get a more detailed
241
247
 
242
248
  pilot --verbose
243
249
 
250
+ ## Firewall Issues
251
+
252
+ `pilot` uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol using
253
+
254
+ ```
255
+ DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" pilot ...
256
+ ```
257
+
244
258
  ## How is my password stored?
245
259
 
246
260
  `pilot` uses the [CredentialsManager](https://github.com/fastlane/CredentialsManager) from `fastlane`.
@@ -18,8 +18,8 @@ module Pilot
18
18
  Helper.log.info "Successfully uploaded the new binary to iTunes Connect"
19
19
 
20
20
  unless config[:skip_submission]
21
- upload_date = wait_for_processing_build
22
- distribute_build(upload_date)
21
+ uploaded_build = wait_for_processing_build
22
+ distribute_build(uploaded_build, options)
23
23
 
24
24
  Helper.log.info "Successfully distribute build to beta testers 🚀"
25
25
  end
@@ -59,49 +59,50 @@ module Pilot
59
59
  end
60
60
 
61
61
  # This method will takes care of checking for the processing builds every few seconds
62
- # @return [Integer] The upload date
62
+ # @return [Build] The build that we just uploaded
63
63
  def wait_for_processing_build
64
64
  # the upload date of the new buid
65
65
  # we use it to identify the build
66
- upload_date = nil
66
+
67
+ latest_build = nil
67
68
  loop do
68
69
  Helper.log.info "Waiting for iTunes Connect to process the new build"
69
70
  sleep 30
70
71
  builds = app.all_processing_builds
71
72
  break if builds.count == 0
72
- upload_date = builds.last.upload_date
73
+ latest_build = builds.last # store the latest pre-processing build here
74
+ end
75
+
76
+ full_build = nil
77
+
78
+ while full_build.nil? || full_build.processing
79
+ # Now get the full builds with a reference to the application and more
80
+ # As the processing build from before doesn't have a refernece to the application
81
+ full_build = app.build_trains[latest_build.train_version].builds.find do |b|
82
+ b.build_version == latest_build.build_version
83
+ end
84
+
85
+ Helper.log.info "Waiting for iTunes Connect to finish processing the new build (#{full_build.train_version} - #{full_build.build_version})"
86
+ sleep 5
73
87
  end
74
88
 
75
- if upload_date
89
+ if full_build
76
90
  Helper.log.info "Build successfully processed by iTunes Connect".green
77
- return upload_date
91
+ return full_build
78
92
  else
79
93
  raise "Error: Seems like iTunes Connect didn't properly pre-process the binary".red
80
94
  end
81
95
  end
82
96
 
83
- def distribute_build(upload_date)
97
+ def distribute_build(uploaded_build, options)
84
98
  Helper.log.info "Distributing new build to testers"
85
99
 
86
- # We try this multiple times, as it sometimes takes some time
87
- # to process the binary
88
- 100.times do
89
- current_build = app.builds.find do |build|
90
- build.upload_date == upload_date
91
- end
92
-
93
- if current_build
94
- current_build.build_train.update_testing_status!(true, 'external')
95
- return true
96
- else
97
- Helper.log.info "Binary is not yet available online..."
98
- sleep 30
99
- end
100
- end
100
+ # First, set the changelog (if necessary)
101
+ uploaded_build.update_build_information!(whats_new: options[:changelog])
101
102
 
102
- Helper.log.error "Build is not visible on iTunes Connect any more - couldn't distribute to testers.".red
103
- Helper.log.error "You can run `pilot --skip_submission` to only upload the binary without distributing.".red
104
- raise "Error distributing the binary"
103
+ # Submit for internal beta testing
104
+ uploaded_build.build_train.update_testing_status!(true, 'external')
105
+ return true
105
106
  end
106
107
  end
107
108
  end
data/lib/pilot/options.rb CHANGED
@@ -20,6 +20,11 @@ module Pilot
20
20
  raise "Could not find ipa file at path '#{value}'" unless File.exist? value
21
21
  raise "'#{value}' doesn't seem to be an ipa file" unless value.end_with? ".ipa"
22
22
  end),
23
+ FastlaneCore::ConfigItem.new(key: :changelog,
24
+ short_option: "-w",
25
+ optional: true,
26
+ env_name: "PILOT_CHANGELOG",
27
+ description: "Provide the what's new text when uploading a new build"),
23
28
  FastlaneCore::ConfigItem.new(key: :skip_submission,
24
29
  short_option: "-s",
25
30
  env_name: "PILOT_SKIP_SUBMISSION",
data/lib/pilot/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Pilot
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  DESCRIPTION = "The best way to manage your TestFlight testers and builds from your terminal"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pilot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.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: 2015-10-08 00:00:00.000000000 Z
11
+ date: 2015-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.7.0
39
+ version: 0.12.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: 1.0.0
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.7.0
49
+ version: 0.12.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: 1.0.0