xcjobs 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/README.md +4 -4
- data/lib/xcjobs/distribute.rb +43 -0
- data/lib/xcjobs/version.rb +1 -1
- data/spec/distribute_spec.rb +103 -18
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74786dbd12794c4e84b2ed2b4e124a4c7962f1fd
|
4
|
+
data.tar.gz: e85e77554cbf70d0ac3c91240970ce79d1828ca1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30d2392f658fd61db0b58815da14d0630b0db9f759f544d587500a4fa1a5f70672dbc82927cd3f65648ea300fa276dbb37582fa1f004a7e8e2f54b165778bc66
|
7
|
+
data.tar.gz: 55fa6b6c013c8f6a7abfd9544de2e5a4cd219ac8d4255d04bf42e056aeb0764bd569fb98de48056f085e8cf5a7951f9ba0785e1b909aed5838a1375b622afc5b
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -85,9 +85,9 @@ XCJobs::Archive.new do |t|
|
|
85
85
|
end
|
86
86
|
|
87
87
|
XCJobs::Export.new do |t|
|
88
|
-
t.
|
89
|
-
t.
|
90
|
-
t.
|
88
|
+
t.archive_path = File.join("build", "Example.xcarchive")
|
89
|
+
t.export_path = File.join("build", "Example.ipa")
|
90
|
+
t.export_provisioning_profile = "Ad_Hoc.mobileprovision"
|
91
91
|
t.formatter = "xcpretty -c"
|
92
92
|
end
|
93
93
|
```
|
@@ -111,7 +111,7 @@ $ bundle exec rake build:export
|
|
111
111
|
xcodebuild -exportArchive -exportFormat IPA -archivePath build/Example.xcarchive -exportPath build/Example.ipa -exportProvisioningProfile Ad Hoc Provisioning Profile
|
112
112
|
```
|
113
113
|
|
114
|
-
### Distribute (Upload to
|
114
|
+
### Distribute (Upload to TestFlight/Crittercism)
|
115
115
|
|
116
116
|
```ruby
|
117
117
|
XCJobs::Distribute::Crittercism.new do |t|
|
data/lib/xcjobs/distribute.rb
CHANGED
@@ -73,6 +73,49 @@ module XCJobs
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
class DeployGate < Rake::TaskLib
|
77
|
+
include Rake::DSL if defined?(Rake::DSL)
|
78
|
+
include Distribute
|
79
|
+
|
80
|
+
attr_accessor :owner_name
|
81
|
+
|
82
|
+
attr_accessor :token
|
83
|
+
attr_accessor :file
|
84
|
+
attr_accessor :message
|
85
|
+
attr_accessor :distribution_key
|
86
|
+
attr_accessor :release_note
|
87
|
+
attr_accessor :disable_notify
|
88
|
+
attr_accessor :visibility
|
89
|
+
|
90
|
+
def initialize()
|
91
|
+
yield self if block_given?
|
92
|
+
define
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
def define
|
98
|
+
namespace :distribute do
|
99
|
+
desc 'upload IPA to DeployGate'
|
100
|
+
task :deploygate do
|
101
|
+
upload("https://deploygate.com/api/users/#{owner_name}/apps", form_data)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def form_data
|
107
|
+
{}.tap do |fields|
|
108
|
+
fields[:token] = token if token
|
109
|
+
fields[:file] = "@#{file}" if file
|
110
|
+
fields[:message] = message if message
|
111
|
+
fields[:distribution_key] = distribution_key if distribution_key
|
112
|
+
fields[:release_note] = release_note if release_note
|
113
|
+
fields[:disable_notify] = 'yes' if disable_notify
|
114
|
+
fields[:visibility] = visibility if visibility
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
76
119
|
class Crittercism < Rake::TaskLib
|
77
120
|
include Rake::DSL if defined?(Rake::DSL)
|
78
121
|
include Distribute
|
data/lib/xcjobs/version.rb
CHANGED
data/spec/distribute_spec.rb
CHANGED
@@ -23,7 +23,7 @@ describe XCJobs::Distribute do
|
|
23
23
|
describe 'define upload ipa task' do
|
24
24
|
let(:credentials) do
|
25
25
|
{ api_token: 'abcde12345efghi67890d543957972cd_MTE3NjUyMjBxMS0wOE0wNiAwMzwzMjoyNy41MTA3MzE',
|
26
|
-
team_token:'12345ab2692bd1c3093408a3399ee947_NDIzMDYyPDExLGExLTIwIDIxOjM9OjS2LjQxOTgzOA',
|
26
|
+
team_token: '12345ab2692bd1c3093408a3399ee947_NDIzMDYyPDExLGExLTIwIDIxOjM9OjS2LjQxOTgzOA',
|
27
27
|
}
|
28
28
|
end
|
29
29
|
|
@@ -36,8 +36,8 @@ describe XCJobs::Distribute do
|
|
36
36
|
let!(:task) do
|
37
37
|
XCJobs::Distribute::TestFlight.new do |t|
|
38
38
|
t.file = file
|
39
|
-
t.api_token = credentials[
|
40
|
-
t.team_token = credentials[
|
39
|
+
t.api_token = credentials[:api_token]
|
40
|
+
t.team_token = credentials[:team_token]
|
41
41
|
t.notify = true
|
42
42
|
t.replace = true
|
43
43
|
t.distribution_lists = 'Dev'
|
@@ -50,11 +50,11 @@ describe XCJobs::Distribute do
|
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'configures the api_token' do
|
53
|
-
expect(task.api_token).to eq credentials[
|
53
|
+
expect(task.api_token).to eq credentials[:api_token]
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'configures the team_token' do
|
57
|
-
expect(task.team_token).to eq credentials[
|
57
|
+
expect(task.team_token).to eq credentials[:team_token]
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'configures the notify' do
|
@@ -82,6 +82,8 @@ describe XCJobs::Distribute do
|
|
82
82
|
expect(@url).to eq 'http://testflightapp.com/api/builds.json'
|
83
83
|
expect(@form_data).to eq({
|
84
84
|
file: "@#{file}",
|
85
|
+
api_token: credentials[:api_token],
|
86
|
+
team_token: credentials[:team_token],
|
85
87
|
notify: true,
|
86
88
|
replace: true,
|
87
89
|
distribution_lists: 'Dev',
|
@@ -93,11 +95,91 @@ describe XCJobs::Distribute do
|
|
93
95
|
end
|
94
96
|
end
|
95
97
|
|
98
|
+
describe XCJobs::Distribute::DeployGate do
|
99
|
+
describe 'define upload ipa task' do
|
100
|
+
let(:owner_name) { 'kishikawakatsumi' }
|
101
|
+
|
102
|
+
let(:credentials) do
|
103
|
+
{ token: 'abcde12345efghi67890abcde12345efghi67890',
|
104
|
+
distribution_key: '12345abcde67890efghi12345abcde67890efghi',
|
105
|
+
}
|
106
|
+
end
|
107
|
+
|
108
|
+
let(:file) do
|
109
|
+
File.join('build', 'Example.ipa')
|
110
|
+
end
|
111
|
+
|
112
|
+
let(:message) { 'New build uploaded!' }
|
113
|
+
let(:release_note) { "Uploaded: #{DateTime.now.strftime("%Y/%m/%d %H:%M:%S")}" }
|
114
|
+
|
115
|
+
let!(:task) do
|
116
|
+
XCJobs::Distribute::DeployGate.new do |t|
|
117
|
+
t.owner_name = owner_name
|
118
|
+
t.file = file
|
119
|
+
t.token = credentials[:token]
|
120
|
+
t.distribution_key = credentials[:distribution_key]
|
121
|
+
t.message = message
|
122
|
+
t.release_note = release_note
|
123
|
+
t.disable_notify = true
|
124
|
+
t.visibility = 'public'
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'configures the ipa file path' do
|
129
|
+
expect(task.file).to eq file
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'configures the token' do
|
133
|
+
expect(task.token).to eq credentials[:token]
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'configures the distribution_key' do
|
137
|
+
expect(task.distribution_key).to eq credentials[:distribution_key]
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'configures the message' do
|
141
|
+
expect(task.message).to eq message
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'configures the release_note' do
|
145
|
+
expect(task.release_note).to eq release_note
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'configures the disable_notify' do
|
149
|
+
expect(task.disable_notify).to eq true
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'configures the visibility' do
|
153
|
+
expect(task.visibility).to eq 'public'
|
154
|
+
end
|
155
|
+
|
156
|
+
describe 'tasks' do
|
157
|
+
describe 'distribute:deploygate' do
|
158
|
+
subject { Rake.application['distribute:deploygate'] }
|
159
|
+
|
160
|
+
it 'executes the appropriate commands' do
|
161
|
+
subject.invoke
|
162
|
+
expect(@url).to eq "https://deploygate.com/api/users/#{owner_name}/apps"
|
163
|
+
expect(@form_data).to eq({
|
164
|
+
file: "@#{file}",
|
165
|
+
token: credentials[:token],
|
166
|
+
distribution_key: credentials[:distribution_key],
|
167
|
+
message: message,
|
168
|
+
release_note: release_note,
|
169
|
+
disable_notify: 'yes',
|
170
|
+
visibility: 'public',
|
171
|
+
})
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
96
178
|
describe XCJobs::Distribute::Crittercism do
|
97
179
|
describe 'define upload dSYMs task' do
|
98
180
|
let(:credentials) do
|
99
181
|
{ app_id: '123456789abcdefg12345678',
|
100
|
-
key:'abcdefghijklmnopqrstuvwxyz123456',
|
182
|
+
key: 'abcdefghijklmnopqrstuvwxyz123456',
|
101
183
|
}
|
102
184
|
end
|
103
185
|
|
@@ -107,18 +189,18 @@ describe XCJobs::Distribute do
|
|
107
189
|
|
108
190
|
let!(:task) do
|
109
191
|
XCJobs::Distribute::Crittercism.new do |t|
|
110
|
-
t.app_id = credentials[
|
111
|
-
t.key = credentials[
|
192
|
+
t.app_id = credentials[:app_id]
|
193
|
+
t.key = credentials[:key]
|
112
194
|
t.dsym = dsym_file
|
113
195
|
end
|
114
196
|
end
|
115
197
|
|
116
198
|
it 'configures the app_id' do
|
117
|
-
expect(task.app_id).to eq credentials[
|
199
|
+
expect(task.app_id).to eq credentials[:app_id]
|
118
200
|
end
|
119
201
|
|
120
202
|
it 'configures the key' do
|
121
|
-
expect(task.
|
203
|
+
expect(task.key).to eq credentials[:key]
|
122
204
|
end
|
123
205
|
|
124
206
|
it 'configures the dsym file path' do
|
@@ -131,8 +213,11 @@ describe XCJobs::Distribute do
|
|
131
213
|
|
132
214
|
it 'executes the appropriate commands' do
|
133
215
|
subject.invoke
|
134
|
-
expect(@url).to eq "https://api.crittercism.com/api_beta/dsym/#{credentials[
|
135
|
-
expect(@form_data).to eq({
|
216
|
+
expect(@url).to eq "https://api.crittercism.com/api_beta/dsym/#{credentials[:app_id]}"
|
217
|
+
expect(@form_data).to eq({
|
218
|
+
dsym: "@#{dsym_file}",
|
219
|
+
key: credentials[:key],
|
220
|
+
})
|
136
221
|
end
|
137
222
|
end
|
138
223
|
end
|
@@ -143,7 +228,7 @@ describe XCJobs::Distribute do
|
|
143
228
|
describe 'define upload ipa task' do
|
144
229
|
let(:credentials) do
|
145
230
|
{ username: 'kishikawakatsumi',
|
146
|
-
password:'password1234',
|
231
|
+
password: 'password1234',
|
147
232
|
}
|
148
233
|
end
|
149
234
|
|
@@ -155,18 +240,18 @@ describe XCJobs::Distribute do
|
|
155
240
|
|
156
241
|
let!(:task) do
|
157
242
|
XCJobs::Distribute::ITC.new do |t|
|
158
|
-
t.username = credentials[
|
159
|
-
t.password = credentials[
|
243
|
+
t.username = credentials[:username]
|
244
|
+
t.password = credentials[:password]
|
160
245
|
t.file = file
|
161
246
|
end
|
162
247
|
end
|
163
248
|
|
164
249
|
it 'configures the username' do
|
165
|
-
expect(task.username).to eq credentials[
|
250
|
+
expect(task.username).to eq credentials[:username]
|
166
251
|
end
|
167
252
|
|
168
253
|
it 'configures the password' do
|
169
|
-
expect(task.password).to eq credentials[
|
254
|
+
expect(task.password).to eq credentials[:password]
|
170
255
|
end
|
171
256
|
|
172
257
|
it 'configures the file path' do
|
@@ -179,7 +264,7 @@ describe XCJobs::Distribute do
|
|
179
264
|
|
180
265
|
it 'executes the appropriate commands' do
|
181
266
|
subject.invoke
|
182
|
-
expect(@commands).to eq [%["#{altool}" --upload-app --file "#{file}" --username #{credentials[
|
267
|
+
expect(@commands).to eq [%["#{altool}" --upload-app --file "#{file}" --username #{credentials[:username]} --password #{credentials[:password]}]]
|
183
268
|
end
|
184
269
|
end
|
185
270
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcjobs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kishikawa katsumi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -118,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
118
|
version: '0'
|
119
119
|
requirements: []
|
120
120
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.
|
121
|
+
rubygems_version: 2.4.5
|
122
122
|
signing_key:
|
123
123
|
specification_version: 4
|
124
124
|
summary: Support the automation of release process of iOS/OSX apps with CI
|