pilot 0.2.3 → 0.3.0

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: 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