watchbuild 0.1.3 → 0.1.4

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: babb06acfd9f68c96b656fb9f140d644e95bc764
4
- data.tar.gz: fca09178648c315a6f0e5778a45ca2b202b8a891
3
+ metadata.gz: 17678285bf3e93c8ca64a66cf551e4847c1413a2
4
+ data.tar.gz: 5cc363ec3f85c5c00a06869eaf62e78ac497339e
5
5
  SHA512:
6
- metadata.gz: a0f4ade30b31bcf4bb619b20b69405c88daa99cd06e23fda9a82bf24bfff20af1320512df916e69413a4d1b719fdce94635c8299e72f0ec39d8687e86602e3f5
7
- data.tar.gz: 59bc5f385140002dd4950dcda22811c868c47f154df0f365c510f65c62f5d0af84a6f1c7d754a314955333f2df424c201ca7c979a9605d3c887905169431eaff
6
+ metadata.gz: 56185ea87a9c32a028b25c35b2f55f2dbd9b6b8a7853e545ae3e851d968dc42f2a300da698834235a9e21ce24af02159ec311cca43647981d0a320e08c5ea980
7
+ data.tar.gz: 15ee18f38b247e5aef2869af8d6cfb842597c0e9ed549fbc8e80026d629078d4bf254ce9f886762674b88363dd40d746cee2bd7dee8fbad2e9f8dc4ec4685dba
data/README.md CHANGED
@@ -1,24 +1,24 @@
1
1
  <h3 align="center">
2
- <a href="https://github.com/fastlane/fastlane">
3
- <img src="assets/fastlane.png" width="150" />
2
+ <a href="https://github.com/fastlane/fastlane/tree/master/fastlane">
3
+ <img src="../fastlane/assets/fastlane.png" width="150" />
4
4
  <br />
5
5
  fastlane
6
6
  </a>
7
7
  </h3>
8
8
  <p align="center">
9
- <a href="https://github.com/fastlane/deliver">deliver</a> &bull;
10
- <a href="https://github.com/fastlane/snapshot">snapshot</a> &bull;
11
- <a href="https://github.com/fastlane/frameit">frameit</a> &bull;
12
- <a href="https://github.com/fastlane/pem">pem</a> &bull;
13
- <a href="https://github.com/fastlane/sigh">sigh</a> &bull;
14
- <a href="https://github.com/fastlane/produce">produce</a> &bull;
15
- <a href="https://github.com/fastlane/cert">cert</a> &bull;
16
- <a href="https://github.com/fastlane/spaceship">spaceship</a> &bull;
17
- <a href="https://github.com/fastlane/pilot">pilot</a> &bull;
9
+ <a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> &bull;
10
+ <a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> &bull;
11
+ <a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> &bull;
12
+ <a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> &bull;
13
+ <a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> &bull;
14
+ <a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> &bull;
15
+ <a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> &bull;
16
+ <a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> &bull;
17
+ <a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> &bull;
18
18
  <a href="https://github.com/fastlane/boarding">boarding</a> &bull;
19
- <a href="https://github.com/fastlane/gym">gym</a> &bull;
20
- <a href="https://github.com/fastlane/scan">scan</a> &bull;
21
- <a href="https://github.com/fastlane/match">match</a>
19
+ <a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> &bull;
20
+ <a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> &bull;
21
+ <a href="https://github.com/fastlane/fastlane/tree/master/match">match</a>
22
22
  </p>
23
23
  -------
24
24
 
@@ -26,7 +26,7 @@ WatchBuild
26
26
  ============
27
27
 
28
28
  [![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
29
- [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/watchbuild/blob/master/LICENSE)
29
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/watchbuild/LICENSE)
30
30
  [![Gem](https://img.shields.io/gem/v/watchbuild.svg?style=flat)](http://rubygems.org/gems/watchbuild)
31
31
 
32
32
  ###### Get a notification once your iTunes Connect build is finished processing
@@ -37,23 +37,23 @@ When you upload a new binary from Xcode to iTunes Connect, you have to wait unti
37
37
 
38
38
  As the [#iosprocessingtime](https://twitter.com/search?q=%23iosprocessingtime) varies from a few minutes to multiple hours, it's easy to forget to check iTunes Connect to see if the build is ready. WatchBuild lets you know as soon as it is done.
39
39
 
40
- WatchBuild is a simple standalone tool that shows a notification once your newly uploaded build was successfully processed by iTunes Connect.
40
+ WatchBuild is a simple standalone tool that shows a notification once your newly uploaded build was successfully processed by iTunes Connect.
41
41
 
42
42
  Once the build is ready to be pushed to TestFlight or for review, you get a OS X notification. You can even directly click on the notification to open the build on iTunes Connect.
43
43
 
44
44
  ### Why use WatchBuild?
45
45
 
46
- WatchBuild is a standalone tool and can be used without any of the other [fastlane tools](https://fastlane.tools). This is *big*, since you can use WatchBuild also if you use Xcode to upload your app.
46
+ WatchBuild is a standalone tool and can be used without any of the other [fastlane tools](https://fastlane.tools). This is *big*, since you can use WatchBuild also if you use Xcode to upload your app.
47
47
 
48
- This tool is not a replacement for [deliver](https://github.com/fastlane/deliver) (Upload metadata and builds to iTunes Connect) or [pilot](https://github.com/fastlane/pilot) (Upload and distribute new builds to TestFlight), but is meant as a small helpful utility with the main purpose to wait for the binary processing to be finished.
48
+ This tool is not a replacement for [deliver](https://github.com/fastlane/fastlane/tree/master/deliver) (Upload metadata and builds to iTunes Connect) or [pilot](https://github.com/fastlane/fastlane/tree/master/pilot) (Upload and distribute new builds to TestFlight), but is meant as a small helpful utility with the main purpose to wait for the binary processing to be finished.
49
49
 
50
50
  Get in contact with the developer on Twitter: [@FastlaneTools](https://twitter.com/FastlaneTools)
51
51
 
52
52
  -------
53
53
  <p align="center">
54
- <a href="#installation">Installation</a> &bull;
55
- <a href="#usage">Usage</a> &bull;
56
- <a href="#tips">Tips</a> &bull;
54
+ <a href="#installation">Installation</a> &bull;
55
+ <a href="#usage">Usage</a> &bull;
56
+ <a href="#tips">Tips</a> &bull;
57
57
  <a href="#need-help">Need help?</a>
58
58
  </p>
59
59
 
@@ -83,31 +83,34 @@ For a list of available parameters and commands run
83
83
 
84
84
  ## How is my password stored?
85
85
 
86
- `WatchBuild` uses the secure [CredentialsManager](https://github.com/fastlane/credentials_manager) from [fastlane](https://fastlane.tools) that stores credentials in your local keychain.
86
+ `WatchBuild` uses the secure [CredentialsManager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from [fastlane](https://fastlane.tools) that stores credentials in your local keychain.
87
87
 
88
88
  # Tips
89
89
  ## [`fastlane`](https://fastlane.tools) Toolchain
90
90
 
91
- - [`fastlane`](https://fastlane.tools): Connect all deployment tools into one streamlined workflow
92
- - [`deliver`](https://github.com/fastlane/deliver): Upload screenshots, metadata and your app to the App Store
93
- - [`snapshot`](https://github.com/fastlane/snapshot): Automate taking localized screenshots of your iOS app on every device
94
- - [`frameit`](https://github.com/fastlane/frameit): Quickly put your screenshots into the right device frames
95
- - [`pem`](https://github.com/fastlane/pem): Automatically generate and renew your push notification profiles
96
- - [`sigh`](https://github.com/fastlane/sigh): Because you would rather spend your time building stuff than fighting provisioning
97
- - [`produce`](https://github.com/fastlane/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
98
- - [`cert`](https://github.com/fastlane/cert): Automatically create and maintain iOS code signing certificates
99
- - [`spaceship`](https://github.com/fastlane/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
100
- - [`pilot`](https://github.com/fastlane/pilot): The best way to manage your TestFlight testers and builds from your terminal
101
- - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
102
- - [`gym`](https://github.com/fastlane/gym): Building your iOS apps has never been easier
103
- - [`scan`](https://github.com/fastlane/scan): The easiest way to run tests of your iOS and Mac app
104
- - [`match`](https://github.com/fastlane/match): Easily sync your certificates and profiles across your team using git
91
+ - [`fastlane`](https://fastlane.tools): The easiest way to automate building and releasing your iOS and Android apps
92
+ - [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
93
+ - [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
94
+ - [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
95
+ - [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
96
+ - [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
97
+ - [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
98
+ - [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
99
+ - [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
100
+ - [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
101
+ - [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
102
+ - [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
103
+ - [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
104
+ - [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
105
105
 
106
106
  ##### [Like this tool? Be the first to know about updates and new fastlane tools](https://tinyletter.com/krausefx)
107
107
 
108
108
  # Need help?
109
109
  Please submit an issue on GitHub and provide information about your setup
110
110
 
111
+ # Code of Conduct
112
+ Help us keep `watchbuild` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
113
+
111
114
  # License
112
115
  This project is licensed under the terms of the MIT license. See the LICENSE file.
113
116
 
@@ -20,6 +20,8 @@ class WatchBuildApplication
20
20
  program :help, 'GitHub', 'https://github.com/fastlane/watchbuild'
21
21
  program :help_formatter, :compact
22
22
 
23
+ global_option('--verbose') { $verbose = true }
24
+
23
25
  FastlaneCore::CommanderGenerator.new.generate(WatchBuild::Options.available_options)
24
26
 
25
27
  command :run do |c|
@@ -17,7 +17,11 @@ module WatchBuild
17
17
  short_option: "-u",
18
18
  env_name: "FASTLANE_USER",
19
19
  description: "Your Apple ID Username",
20
- default_value: user)
20
+ default_value: user),
21
+ FastlaneCore::ConfigItem.new(key: :sample_only_once,
22
+ description: "Only check for the build once, instead of waiting for it to process",
23
+ is_string: false,
24
+ default_value: false)
21
25
  ]
22
26
  end
23
27
  end
@@ -11,29 +11,44 @@ module WatchBuild
11
11
  hide_keys: [],
12
12
  title: "Summary for WatchBuild #{WatchBuild::VERSION}")
13
13
 
14
- Helper.log.info "Starting login with user '#{WatchBuild.config[:username]}'"
14
+ UI.message("Starting login with user '#{WatchBuild.config[:username]}'")
15
15
  Spaceship::Tunes.login(WatchBuild.config[:username], nil)
16
- Helper.log.info "Successfully logged in"
16
+ UI.message("Successfully logged in")
17
17
 
18
18
  start = Time.now
19
- build = wait_for_build
19
+ build = wait_for_build(start)
20
20
  minutes = ((Time.now - start) / 60).round
21
21
  notification(build, minutes)
22
22
  end
23
23
 
24
- def wait_for_build
25
- raise "Could not find app with app identiifer #{WatchBuild.config[:app_identifier]}".red unless app
24
+ def wait_for_build(start_time)
25
+ UI.user_error!("Could not find app with app identiifer #{WatchBuild.config[:app_identifier]}") unless app
26
26
 
27
27
  loop do
28
28
  begin
29
29
  build = find_build
30
30
  return build if build.processing == false
31
- Helper.log.info "Waiting iTunes Connect processing for build #{build.train_version} (#{build.build_version})... this might take a while..."
31
+
32
+ seconds_elapsed = (Time.now - start_time).to_i.abs
33
+ case seconds_elapsed
34
+ when 0..59
35
+ time_elapsed = Time.at(seconds_elapsed).utc.strftime "%S seconds"
36
+ when 60..3599
37
+ time_elapsed = Time.at(seconds_elapsed).utc.strftime "%M:%S minutes"
38
+ else
39
+ time_elapsed = Time.at(seconds_elapsed).utc.strftime "%H:%M:%S hours"
40
+ end
41
+
42
+ UI.message("Waiting #{time_elapsed} for iTunes Connect to process the build #{build.train_version} (#{build.build_version})... this might take a while...")
32
43
  rescue => ex
33
- Helper.log.error ex
34
- Helper.log.info "Something failed... trying again to recover"
44
+ UI.error(ex)
45
+ UI.message("Something failed... trying again to recover")
46
+ end
47
+ if WatchBuild.config[:sample_only_once] == false
48
+ sleep 30
49
+ else
50
+ break
35
51
  end
36
- sleep 30
37
52
  end
38
53
  nil
39
54
  end
@@ -41,18 +56,23 @@ module WatchBuild
41
56
  def notification(build, minutes)
42
57
  require 'terminal-notifier'
43
58
 
59
+ if build.nil?
60
+ Helper.log.info "Application build is still processing"
61
+ return
62
+ end
63
+
44
64
  url = "https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/#{@app.apple_id}/activity/ios/builds/#{build.train_version}/#{build.build_version}/details"
45
65
  TerminalNotifier.notify("Build finished processing",
46
66
  title: build.app_name,
47
67
  subtitle: "#{build.train_version} (#{build.build_version})",
48
68
  execute: "open '#{url}'")
49
69
 
50
- Helper.log.info "Successfully finished processing the build".green
70
+ UI.success("Successfully finished processing the build")
51
71
  if minutes > 0 # it's 0 minutes if there was no new build uploaded
52
- Helper.log.info "You can now tweet: "
53
- Helper.log.info "iTunes Connect #iosprocessingtime #{minutes} minutes".yellow
72
+ UI.message("You can now tweet: ")
73
+ UI.important("iTunes Connect #iosprocessingtime #{minutes} minutes")
54
74
  end
55
- Helper.log.info url
75
+ UI.message(url)
56
76
  end
57
77
 
58
78
  private
@@ -70,8 +90,7 @@ module WatchBuild
70
90
  end
71
91
 
72
92
  unless build
73
- Helper.log.fatal v.candidate_builds
74
- raise "Could not find build".red
93
+ UI.user_error!("No processing builds available for app #{WatchBuild.config[:app_identifier]}")
75
94
  end
76
95
 
77
96
  return build
@@ -1,4 +1,4 @@
1
1
  module WatchBuild
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  DESCRIPTION = "Get a notification once your iTunes Connect build is finished processing"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watchbuild
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-12 00:00:00.000000000 Z
11
+ date: 2016-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fastlane_core
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.30.0
19
+ version: 0.43.1
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 1.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.30.0
29
+ version: 0.43.1
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.0.0
@@ -36,14 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.18.0
39
+ version: 0.26.2
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: 1.0.0
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
47
  - - ">="
45
48
  - !ruby/object:Gem::Version
46
- version: 0.18.0
49
+ version: 0.26.2
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: 1.0.0
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: terminal-notifier
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +106,20 @@ dependencies:
100
106
  - - "~>"
101
107
  - !ruby/object:Gem::Version
102
108
  version: 3.1.0
109
+ - !ruby/object:Gem::Dependency
110
+ name: rspec_junit_formatter
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: 0.2.3
116
+ type: :development
117
+ prerelease: false
118
+ version_requirements: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: 0.2.3
103
123
  - !ruby/object:Gem::Dependency
104
124
  name: pry
105
125
  requirement: !ruby/object:Gem::Requirement
@@ -176,14 +196,14 @@ dependencies:
176
196
  requirements:
177
197
  - - "~>"
178
198
  - !ruby/object:Gem::Version
179
- version: '0.34'
199
+ version: 0.38.0
180
200
  type: :development
181
201
  prerelease: false
182
202
  version_requirements: !ruby/object:Gem::Requirement
183
203
  requirements:
184
204
  - - "~>"
185
205
  - !ruby/object:Gem::Version
186
- version: '0.34'
206
+ version: 0.38.0
187
207
  description: Get a notification once your iTunes Connect build is finished processing
188
208
  email:
189
209
  - watchbuild@krausefx.com