xcjobs 0.0.4 → 0.0.5
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 +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
|