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 +4 -4
- data/README.md +39 -36
- data/bin/watchbuild +2 -0
- data/lib/watchbuild/options.rb +5 -1
- data/lib/watchbuild/runner.rb +34 -15
- data/lib/watchbuild/version.rb +1 -1
- metadata +28 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17678285bf3e93c8ca64a66cf551e4847c1413a2
|
4
|
+
data.tar.gz: 5cc363ec3f85c5c00a06869eaf62e78ac497339e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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> •
|
10
|
-
<a href="https://github.com/fastlane/snapshot">snapshot</a> •
|
11
|
-
<a href="https://github.com/fastlane/frameit">frameit</a> •
|
12
|
-
<a href="https://github.com/fastlane/pem">pem</a> •
|
13
|
-
<a href="https://github.com/fastlane/sigh">sigh</a> •
|
14
|
-
<a href="https://github.com/fastlane/produce">produce</a> •
|
15
|
-
<a href="https://github.com/fastlane/cert">cert</a> •
|
16
|
-
<a href="https://github.com/fastlane/spaceship">spaceship</a> •
|
17
|
-
<a href="https://github.com/fastlane/pilot">pilot</a> •
|
9
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> •
|
10
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> •
|
11
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> •
|
12
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> •
|
13
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> •
|
14
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> •
|
15
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> •
|
16
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> •
|
17
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> •
|
18
18
|
<a href="https://github.com/fastlane/boarding">boarding</a> •
|
19
|
-
<a href="https://github.com/fastlane/gym">gym</a> •
|
20
|
-
<a href="https://github.com/fastlane/scan">scan</a> •
|
21
|
-
<a href="https://github.com/fastlane/match">match</a>
|
19
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> •
|
20
|
+
<a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> •
|
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/
|
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> •
|
55
|
-
<a href="#usage">Usage</a> •
|
56
|
-
<a href="#tips">Tips</a> •
|
54
|
+
<a href="#installation">Installation</a> •
|
55
|
+
<a href="#usage">Usage</a> •
|
56
|
+
<a href="#tips">Tips</a> •
|
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):
|
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
|
|
data/bin/watchbuild
CHANGED
@@ -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|
|
data/lib/watchbuild/options.rb
CHANGED
@@ -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
|
data/lib/watchbuild/runner.rb
CHANGED
@@ -11,29 +11,44 @@ module WatchBuild
|
|
11
11
|
hide_keys: [],
|
12
12
|
title: "Summary for WatchBuild #{WatchBuild::VERSION}")
|
13
13
|
|
14
|
-
|
14
|
+
UI.message("Starting login with user '#{WatchBuild.config[:username]}'")
|
15
15
|
Spaceship::Tunes.login(WatchBuild.config[:username], nil)
|
16
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
34
|
-
|
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
|
-
|
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
|
-
|
53
|
-
|
72
|
+
UI.message("You can now tweet: ")
|
73
|
+
UI.important("iTunes Connect #iosprocessingtime #{minutes} minutes")
|
54
74
|
end
|
55
|
-
|
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
|
-
|
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
|
data/lib/watchbuild/version.rb
CHANGED
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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:
|
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:
|
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
|