tug 0.0.10 → 0.0.11
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/README.md +31 -0
- data/lib/tug/deployment/deployer.rb +9 -22
- data/lib/tug/deployment/hockeyapp.rb +55 -0
- data/lib/tug/deployment/testflight.rb +28 -0
- data/lib/tug/interface/interface.rb +82 -14
- data/lib/tug/version.rb +1 -1
- data/lib/tug.rb +2 -0
- data/spec/deployer_spec.rb +4 -36
- data/spec/hockapp_spec.rb +104 -0
- data/spec/ipa_command_spec.rb +1 -1
- data/spec/testflight_spec.rb +54 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ef802a29eb4279c1e6e9d21812d43a2e83013f0
|
4
|
+
data.tar.gz: 0978140b84a203282b7349981233499d802c10ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 146d9fd46884fbcefd7029950802c81b89a337389a2a45a72d1086d3240421980391e4042b4c7827ae55227604855504dc111a0a40b2b883ae0f92e4f3cf2b80
|
7
|
+
data.tar.gz: 773f873d8f169831cd61d7c791e3d44927c9ed2ae68bd6d7c90bb7b63277f13c424dc4636381253768f21f0a553cb32617c921f6474c07a234bb2459de731e0e
|
data/README.md
CHANGED
@@ -95,6 +95,37 @@ $ tug deploy testflight
|
|
95
95
|
> * `TUG_TESTFLIGHT_API_KEY`
|
96
96
|
> * `TUG_TESTFLIGHT_TEAM_KEY`
|
97
97
|
|
98
|
+
#### Hockeyapp
|
99
|
+
|
100
|
+
```
|
101
|
+
$ tug ipa
|
102
|
+
$ tug deploy hockeyapp
|
103
|
+
```
|
104
|
+
|
105
|
+
###### Options
|
106
|
+
|
107
|
+
```
|
108
|
+
-f, [--file] # path to an ipa to deploy (optional, searches current directory by default)
|
109
|
+
-a, [--api-token] # hockeyapp api key (optional, environmental variable by default)
|
110
|
+
-n, [--notify] # notify users of the new build (optional, defaults to 0)
|
111
|
+
-r, [--release-notes] # release notes for the build, can be plain text or a path to a file (optional)
|
112
|
+
-y, [--notes-type] # the format of the notes (optional, defaults to 1 for markdown)
|
113
|
+
-s, [--status] # the hockeyapp download status (optional)
|
114
|
+
-t, [--tags] # restrict the download to a list of hockeyapp tags (optional)
|
115
|
+
-e, [--teams] # restirct the download to a list of hockeyapp teams (optional)
|
116
|
+
-u, [--users] # restirct the download to a list of hockeyapp user ids (optional)
|
117
|
+
-m, [--mandatory] # set as a mandatory build (optional)
|
118
|
+
-l, [--release-type] # set the type of the release (optiona, defaults to 0 for beta)
|
119
|
+
-p, [--private] # set if the build is private (optional, defaults to false)
|
120
|
+
-h, [--commit-sha] # set the sha associated with this build (optional)
|
121
|
+
-u, [--build-server-url] # set the URL of the build that generated the ipa (optional)
|
122
|
+
-p, [--repository-url] # set the URL of the repo associated with the project (optional)
|
123
|
+
```
|
124
|
+
|
125
|
+
>
|
126
|
+
> The following environment variable is used to set your hockeyapp API key
|
127
|
+
> * `TUG_HOCKEYAPP_API_KEY`
|
128
|
+
|
98
129
|
### Provision
|
99
130
|
|
100
131
|
Tug can provision a new machine ready for signing ipas by installing the certificates and provisioning profile required for generating a signed ipa of your application, this is very useful for CI environments like Travis.
|
@@ -1,26 +1,17 @@
|
|
1
1
|
module Tug
|
2
2
|
class Deployer
|
3
3
|
|
4
|
-
attr_reader :
|
4
|
+
attr_reader :file
|
5
5
|
attr_reader :api_token
|
6
|
-
attr_reader :team_token
|
7
|
-
attr_reader :lists
|
8
|
-
attr_reader :notify
|
9
6
|
attr_reader :notes
|
10
|
-
|
11
|
-
class << self
|
12
|
-
def deployer(options)
|
13
|
-
Tug::Deployer.new(options)
|
14
|
-
end
|
15
|
-
end
|
7
|
+
attr_reader :notify
|
16
8
|
|
17
9
|
def initialize(options)
|
18
|
-
@
|
19
|
-
@lists = options[:lists]
|
20
|
-
@notify = options[:notify]
|
10
|
+
@file = options[:file]
|
21
11
|
@api_token = options[:api_token]
|
22
|
-
@
|
23
|
-
|
12
|
+
@notify = options[:notify]
|
13
|
+
|
14
|
+
self.notes = options[:release_notes]
|
24
15
|
end
|
25
16
|
|
26
17
|
def deploy
|
@@ -37,16 +28,12 @@ module Tug
|
|
37
28
|
private
|
38
29
|
|
39
30
|
def url
|
40
|
-
"
|
31
|
+
""
|
41
32
|
end
|
42
33
|
|
43
34
|
def params
|
44
|
-
params = "-F
|
45
|
-
params += "-F
|
46
|
-
params += "-F team_token='#{team_token}' "
|
47
|
-
params += "-F notes='#{notes}' "
|
48
|
-
params += "-F distribution_lists='#{lists}' "
|
49
|
-
params += "-F notify=#{notify}"
|
35
|
+
params = "-F notes='#{notes}' "
|
36
|
+
params += "-F notify=#{notify} "
|
50
37
|
end
|
51
38
|
end
|
52
39
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Tug
|
2
|
+
class Hockeyapp < Deployer
|
3
|
+
|
4
|
+
attr_reader :notes_type
|
5
|
+
attr_reader :status
|
6
|
+
attr_reader :tags
|
7
|
+
attr_reader :teams
|
8
|
+
attr_reader :users
|
9
|
+
attr_reader :mandatory
|
10
|
+
attr_reader :release_type
|
11
|
+
attr_reader :private
|
12
|
+
attr_reader :commit_sha
|
13
|
+
attr_reader :build_server_url
|
14
|
+
attr_reader :repository_url
|
15
|
+
|
16
|
+
def initialize(options)
|
17
|
+
super
|
18
|
+
|
19
|
+
@notes_type = options[:notes_type]
|
20
|
+
@status = options[:status]
|
21
|
+
@tags = options[:tags]
|
22
|
+
@teams = options[:teams]
|
23
|
+
@users = options[:users]
|
24
|
+
@mandatory = options[:mandatory]
|
25
|
+
@release_type = options[:release_type]
|
26
|
+
@private = options[:private]
|
27
|
+
@commit_sha = options[:commit_sha]
|
28
|
+
@build_server_url = options[:build_server_url]
|
29
|
+
@repository_url = options[:repository_url]
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def url
|
35
|
+
"https://rink.hockeyapp.net/api/2/apps/upload"
|
36
|
+
end
|
37
|
+
|
38
|
+
def params
|
39
|
+
params = super
|
40
|
+
params += "-F \"ipa=@#{file}\" "
|
41
|
+
params += "-F \"teams=#{teams}\" "
|
42
|
+
params += "-F \"users=#{users}\" "
|
43
|
+
params += "-F \"mandatory=#{mandatory}\" "
|
44
|
+
params += "-F \"release_type=#{release_type}\" "
|
45
|
+
params += "-F \"private=#{private}\" "
|
46
|
+
params += "-F \"commit_sha=#{commit_sha}\" "
|
47
|
+
params += "-F \"build_server_url=#{build_server_url}\" "
|
48
|
+
params += "-F \"repository_url=#{repository_url}\" "
|
49
|
+
params += "-F \"tags=#{tags}\" "
|
50
|
+
params += "-F \"status=#{status}\" "
|
51
|
+
params += "-F \"notes_type=#{notes_type}\" "
|
52
|
+
params += "-H \"X-HockeyAppToken: #{api_token}\" "
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Tug
|
2
|
+
class Testflight < Deployer
|
3
|
+
|
4
|
+
attr_reader :team_token
|
5
|
+
attr_reader :lists
|
6
|
+
|
7
|
+
def initialize(options)
|
8
|
+
super
|
9
|
+
|
10
|
+
@lists = options[:lists]
|
11
|
+
@team_token = options[:team_token]
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def url
|
17
|
+
"http://testflightapp.com/api/builds.json"
|
18
|
+
end
|
19
|
+
|
20
|
+
def params
|
21
|
+
params = super
|
22
|
+
params += "-F file=@#{file} "
|
23
|
+
params += "-F api_token='#{api_token}' "
|
24
|
+
params += "-F team_token='#{team_token}' "
|
25
|
+
params += "-F distribution_lists='#{lists}' "
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -3,14 +3,68 @@ module Tug
|
|
3
3
|
class Deploy < Thor
|
4
4
|
|
5
5
|
desc "testflight", "deploy an ipa to testflight"
|
6
|
-
option :file,
|
7
|
-
|
8
|
-
|
9
|
-
option :
|
10
|
-
|
11
|
-
|
6
|
+
option :file,
|
7
|
+
:aliases => "-f",
|
8
|
+
:default => Dir.glob("*.ipa").first
|
9
|
+
option :api_token,
|
10
|
+
:aliases => "-a",
|
11
|
+
:default => ENV['TUG_TESTFLIGHT_API_TOKEN']
|
12
|
+
option :team_token,
|
13
|
+
:aliases => "-t",
|
14
|
+
:default => ENV['TUG_TESTFLIGHT_TEAM_TOKEN']
|
15
|
+
option :lists,
|
16
|
+
:aliases => "-l"
|
17
|
+
option :notify,
|
18
|
+
:aliases => "-n",
|
19
|
+
:default => false
|
20
|
+
option :release_notes,
|
21
|
+
:aliases => "-r",
|
22
|
+
:default => "This build was uploaded via Tug"
|
12
23
|
def testflight
|
13
|
-
deployer = Tug::
|
24
|
+
deployer = Tug::Testflight.new(options)
|
25
|
+
deployer.deploy
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "hockeyapp", "deploy an ipa to hockeyapp"
|
29
|
+
option :file,
|
30
|
+
:aliases => "-f",
|
31
|
+
:default => Dir.glob("*.ipa").first
|
32
|
+
option :api_token,
|
33
|
+
:aliases => "-a",
|
34
|
+
:default => ENV['TUG_HOCKEYAPP_API_TOKEN']
|
35
|
+
option :notify,
|
36
|
+
:aliases => "-n",
|
37
|
+
:default => 0
|
38
|
+
option :release_notes,
|
39
|
+
:aliases => "-r",
|
40
|
+
:default => "This build was uploaded via Tug"
|
41
|
+
option :notes_type,
|
42
|
+
:aliases => "-y",
|
43
|
+
:default => 1
|
44
|
+
option :status,
|
45
|
+
:aliases => "-s"
|
46
|
+
option :tags,
|
47
|
+
:aliases => "-t"
|
48
|
+
option :teams,
|
49
|
+
:aliases => "-e"
|
50
|
+
option :users,
|
51
|
+
:aliases => "-u"
|
52
|
+
option :mandatory,
|
53
|
+
:aliases => "-m"
|
54
|
+
option :release_type,
|
55
|
+
:aliases => "-l",
|
56
|
+
:default => 0
|
57
|
+
option :private,
|
58
|
+
:aliases => "-p",
|
59
|
+
:default => false
|
60
|
+
option :commit_sha,
|
61
|
+
:aliases => "-h"
|
62
|
+
option :build_server_url,
|
63
|
+
:aliases => "-u"
|
64
|
+
option :repository_url,
|
65
|
+
:aliases => "-p"
|
66
|
+
def hockeyapp
|
67
|
+
deployer = Tug::Hockeyapp.new(options)
|
14
68
|
deployer.deploy
|
15
69
|
end
|
16
70
|
|
@@ -25,16 +79,24 @@ module Tug
|
|
25
79
|
class Interface < Thor
|
26
80
|
|
27
81
|
desc "build", "build a project"
|
28
|
-
option :config,
|
82
|
+
option :config,
|
83
|
+
:default => "#{Dir.pwd}/.tug.yml",
|
84
|
+
:aliases => "-c"
|
29
85
|
def build
|
30
86
|
config_file = Tug::ConfigFile.config_file(options[:config])
|
31
87
|
execute(__method__.to_s, config_file)
|
32
88
|
end
|
33
89
|
|
34
90
|
desc "ipa", "generate an ipa"
|
35
|
-
option :config,
|
36
|
-
|
37
|
-
|
91
|
+
option :config,
|
92
|
+
:default => "#{Dir.pwd}/.tug.yml",
|
93
|
+
:aliases => "-c"
|
94
|
+
option :export,
|
95
|
+
:default => "#{Dir.pwd}",
|
96
|
+
:aliases => "-e"
|
97
|
+
option :build_config,
|
98
|
+
:default => "Release",
|
99
|
+
:aliases => "-b"
|
38
100
|
def ipa
|
39
101
|
config_file = Tug::ConfigFile.config_file(options[:config])
|
40
102
|
config_file.project.ipa_export_path = options[:export]
|
@@ -43,9 +105,15 @@ module Tug
|
|
43
105
|
end
|
44
106
|
|
45
107
|
desc "provision", "provision system distrubution certificates and provisioning profile"
|
46
|
-
option :config,
|
47
|
-
|
48
|
-
|
108
|
+
option :config,
|
109
|
+
:default => "#{Dir.pwd}/.tug.yml",
|
110
|
+
:aliases => "-c"
|
111
|
+
option :keychain,
|
112
|
+
:default => "tug",
|
113
|
+
:aliases => "-k"
|
114
|
+
option :password,
|
115
|
+
:aliases => "-p",
|
116
|
+
:default => ENV['TUG_P12_PASSWORD']
|
49
117
|
def provision
|
50
118
|
config_file = Tug::ConfigFile.config_file(options[:config])
|
51
119
|
config_file.keychain.name = options[:keychain]
|
data/lib/tug/version.rb
CHANGED
data/lib/tug.rb
CHANGED
@@ -24,5 +24,7 @@ require "tug/tool/xctool_archive"
|
|
24
24
|
require "tug/keychain/keychain"
|
25
25
|
|
26
26
|
require "tug/deployment/deployer"
|
27
|
+
require "tug/deployment/testflight"
|
28
|
+
require "tug/deployment/hockeyapp"
|
27
29
|
require "tug/deployment/notes_parser"
|
28
30
|
require "tug/deployment/notes_file_parser"
|
data/spec/deployer_spec.rb
CHANGED
@@ -5,55 +5,23 @@ describe Tug::Deployer do
|
|
5
5
|
before(:each) do
|
6
6
|
@options = {
|
7
7
|
:api_token => "api_token",
|
8
|
-
:team_token => "team_token",
|
9
8
|
:file => "test.ipa",
|
10
|
-
:
|
11
|
-
:
|
9
|
+
:release_notes => "Notes",
|
10
|
+
:notify => 1
|
12
11
|
}
|
13
12
|
|
14
|
-
@deployer = Tug::Deployer.
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "when returning a deployer" do
|
18
|
-
it "should return a default deployer" do
|
19
|
-
expect(Tug::Deployer.deployer(@options)).to be_kind_of(Tug::Deployer)
|
20
|
-
end
|
13
|
+
@deployer = Tug::Deployer.new(@options)
|
21
14
|
end
|
22
15
|
|
23
16
|
describe "when deploying" do
|
24
17
|
|
25
|
-
it "should send to testflight by default" do
|
26
|
-
expect(IO).to receive(:popen).with(/http:\/\/testflightapp.com\/api\/builds.json/)
|
27
|
-
@deployer.deploy
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should send the ipa as a param" do
|
31
|
-
expect(IO).to receive(:popen).with(/-F file=@test.ipa/)
|
32
|
-
@deployer.deploy
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should send the team token as a param" do
|
36
|
-
expect(IO).to receive(:popen).with(/-F team_token='team_token'/)
|
37
|
-
@deployer.deploy
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should send the api token as a param" do
|
41
|
-
expect(IO).to receive(:popen).with(/-F api_token='api_token'/)
|
42
|
-
@deployer.deploy
|
43
|
-
end
|
44
|
-
|
45
18
|
it "should have some release notes" do
|
46
19
|
expect(IO).to receive(:popen).with(/-F notes='Notes'/)
|
47
20
|
@deployer.deploy
|
48
21
|
end
|
49
22
|
|
50
|
-
it "should have lists" do
|
51
|
-
expect(IO).to receive(:popen).with(/-F distribution_lists=''/)
|
52
|
-
@deployer.deploy
|
53
|
-
end
|
54
|
-
|
55
23
|
it "should notify" do
|
56
|
-
expect(IO).to receive(:popen).with(/-F notify=
|
24
|
+
expect(IO).to receive(:popen).with(/-F notify=1/)
|
57
25
|
@deployer.deploy
|
58
26
|
end
|
59
27
|
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Tug::Hockeyapp do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@options = {
|
7
|
+
:api_token => "api_token",
|
8
|
+
:file => "test.ipa",
|
9
|
+
:release_notes => "Notes",
|
10
|
+
:notify => 1,
|
11
|
+
:notes_type => 1,
|
12
|
+
:status => 1,
|
13
|
+
:tags => "hello, world",
|
14
|
+
:teams => "team",
|
15
|
+
:users => "users",
|
16
|
+
:mandatory => 0,
|
17
|
+
:release_type => 0,
|
18
|
+
:private => true,
|
19
|
+
:commit_sha => "123",
|
20
|
+
:build_server_url => "hello.com",
|
21
|
+
:repository_url => "world.com"
|
22
|
+
}
|
23
|
+
|
24
|
+
@deployer = Tug::Hockeyapp.new(@options)
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "when deploying" do
|
28
|
+
|
29
|
+
it "should send to hockeyapp" do
|
30
|
+
expect(IO).to receive(:popen).with(/https:\/\/rink.hockeyapp.net\/api\/2\/apps\/upload/)
|
31
|
+
@deployer.deploy
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should send the ipa as a param" do
|
35
|
+
expect(IO).to receive(:popen).with(/-F "ipa=@test.ipa"/)
|
36
|
+
@deployer.deploy
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should have some release notes" do
|
40
|
+
expect(IO).to receive(:popen).with(/-F notes='Notes'/)
|
41
|
+
@deployer.deploy
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should have some a notes type" do
|
45
|
+
expect(IO).to receive(:popen).with(/-F "notes_type=1"/)
|
46
|
+
@deployer.deploy
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should have some a status" do
|
50
|
+
expect(IO).to receive(:popen).with(/-F "status=1"/)
|
51
|
+
@deployer.deploy
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should have tags" do
|
55
|
+
expect(IO).to receive(:popen).with(/-F "tags=hello, world"/)
|
56
|
+
@deployer.deploy
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should send the api token as a param" do
|
60
|
+
expect(IO).to receive(:popen).with(/-H "X-HockeyAppToken: api_token"/)
|
61
|
+
@deployer.deploy
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should have teams" do
|
65
|
+
expect(IO).to receive(:popen).with(/-F "teams=team"/)
|
66
|
+
@deployer.deploy
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should have users" do
|
70
|
+
expect(IO).to receive(:popen).with(/-F "users=users"/)
|
71
|
+
@deployer.deploy
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should have a mandatory key" do
|
75
|
+
expect(IO).to receive(:popen).with(/-F "mandatory=0"/)
|
76
|
+
@deployer.deploy
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should have a release_type" do
|
80
|
+
expect(IO).to receive(:popen).with(/-F "release_type=0"/)
|
81
|
+
@deployer.deploy
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should have a private key" do
|
85
|
+
expect(IO).to receive(:popen).with(/-F "private=true"/)
|
86
|
+
@deployer.deploy
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should have a commit_sha" do
|
90
|
+
expect(IO).to receive(:popen).with(/-F "commit_sha=123"/)
|
91
|
+
@deployer.deploy
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should have a build_server_url" do
|
95
|
+
expect(IO).to receive(:popen).with(/-F "build_server_url=hello.com"/)
|
96
|
+
@deployer.deploy
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should have a repository_url" do
|
100
|
+
expect(IO).to receive(:popen).with(/-F "repository_url=world.com"/)
|
101
|
+
@deployer.deploy
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/spec/ipa_command_spec.rb
CHANGED
@@ -10,8 +10,8 @@ describe Tug::IpaCommand do
|
|
10
10
|
allow(FileUtils).to receive(:mv)
|
11
11
|
|
12
12
|
yaml = project_yaml
|
13
|
-
yaml["project"]["ipa_config"] = "InHouse"
|
14
13
|
@project = Tug::Project.new(yaml)
|
14
|
+
@project.ipa_config = "InHouse"
|
15
15
|
|
16
16
|
@config = double(Tug::ConfigFile)
|
17
17
|
allow(@config).to receive(:project).and_return(@project)
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Tug::Testflight do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@options = {
|
7
|
+
:api_token => "api_token",
|
8
|
+
:team_token => "team_token",
|
9
|
+
:file => "test.ipa",
|
10
|
+
:notify => true,
|
11
|
+
:release_notes => "Notes"
|
12
|
+
}
|
13
|
+
|
14
|
+
@deployer = Tug::Testflight.new(@options)
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "when deploying" do
|
18
|
+
|
19
|
+
it "should send to testflight by default" do
|
20
|
+
expect(IO).to receive(:popen).with(/http:\/\/testflightapp.com\/api\/builds.json/)
|
21
|
+
@deployer.deploy
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should send the ipa as a param" do
|
25
|
+
expect(IO).to receive(:popen).with(/-F file=@test.ipa/)
|
26
|
+
@deployer.deploy
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should send the team token as a param" do
|
30
|
+
expect(IO).to receive(:popen).with(/-F team_token='team_token'/)
|
31
|
+
@deployer.deploy
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should send the api token as a param" do
|
35
|
+
expect(IO).to receive(:popen).with(/-F api_token='api_token'/)
|
36
|
+
@deployer.deploy
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should have some release notes" do
|
40
|
+
expect(IO).to receive(:popen).with(/-F notes='Notes'/)
|
41
|
+
@deployer.deploy
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should have lists" do
|
45
|
+
expect(IO).to receive(:popen).with(/-F distribution_lists=''/)
|
46
|
+
@deployer.deploy
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should notify" do
|
50
|
+
expect(IO).to receive(:popen).with(/-F notify=true/)
|
51
|
+
@deployer.deploy
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Fish
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -107,8 +107,10 @@ files:
|
|
107
107
|
- lib/tug/config/config_file.rb
|
108
108
|
- lib/tug/config/missing_config_file.rb
|
109
109
|
- lib/tug/deployment/deployer.rb
|
110
|
+
- lib/tug/deployment/hockeyapp.rb
|
110
111
|
- lib/tug/deployment/notes_file_parser.rb
|
111
112
|
- lib/tug/deployment/notes_parser.rb
|
113
|
+
- lib/tug/deployment/testflight.rb
|
112
114
|
- lib/tug/interface/interface.rb
|
113
115
|
- lib/tug/keychain/keychain.rb
|
114
116
|
- lib/tug/project/project.rb
|
@@ -121,6 +123,7 @@ files:
|
|
121
123
|
- spec/command_spec.rb
|
122
124
|
- spec/config_file_spec.rb
|
123
125
|
- spec/deployer_spec.rb
|
126
|
+
- spec/hockapp_spec.rb
|
124
127
|
- spec/ipa_command_spec.rb
|
125
128
|
- spec/keychain_spec.rb
|
126
129
|
- spec/notes_file_parser_spec.rb
|
@@ -129,6 +132,7 @@ files:
|
|
129
132
|
- spec/release_notes_spec.rb
|
130
133
|
- spec/spec_helper.rb
|
131
134
|
- spec/test_notes.txt
|
135
|
+
- spec/testflight_spec.rb
|
132
136
|
- spec/xctool_spec.rb
|
133
137
|
- tug.gemspec
|
134
138
|
homepage: https://github.com/alexfish/tug
|
@@ -160,6 +164,7 @@ test_files:
|
|
160
164
|
- spec/command_spec.rb
|
161
165
|
- spec/config_file_spec.rb
|
162
166
|
- spec/deployer_spec.rb
|
167
|
+
- spec/hockapp_spec.rb
|
163
168
|
- spec/ipa_command_spec.rb
|
164
169
|
- spec/keychain_spec.rb
|
165
170
|
- spec/notes_file_parser_spec.rb
|
@@ -168,4 +173,5 @@ test_files:
|
|
168
173
|
- spec/release_notes_spec.rb
|
169
174
|
- spec/spec_helper.rb
|
170
175
|
- spec/test_notes.txt
|
176
|
+
- spec/testflight_spec.rb
|
171
177
|
- spec/xctool_spec.rb
|