gta 0.4.5 → 0.4.7
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 +2 -2
- data/gta.gemspec +0 -1
- data/lib/gta/heroku_db.rb +1 -1
- data/lib/gta/manager.rb +5 -0
- data/lib/gta/tasks/heroku.rake +4 -4
- data/lib/gta/tasks/heroku_db.rake +4 -4
- data/lib/gta/version.rb +1 -1
- data/spec/fixtures/config/gta_with_account.yml +29 -0
- data/spec/heroku_db_spec.rb +1 -1
- data/spec/manager_spec.rb +9 -0
- data/spec/spec_helper.rb +1 -1
- metadata +4 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f930a1d951fbb0fbe73a607cf5d5976d31757ac
|
4
|
+
data.tar.gz: 9374c93830f70044ea0ba245c5551236046d0c1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6d3c77c4a6b1b0f253c3af91e69fe6d65d63717c6f1a225eff5a07b27461ef0d241dd060871946646e5258359530748ddc7e8b902282e30427e0b1d8d82ace3
|
7
|
+
data.tar.gz: 1297e0dc51415ac9d526d8674c17597770498418913fa148af080c5c41e54dae8ecefcc51e85eca9d3c2942788783ebde29f99349d7c532a2b143d74c2449ca5
|
data/README.md
CHANGED
@@ -8,8 +8,8 @@ Heroku has made git deploys an awesome standard. Mislav's git-deploy gem
|
|
8
8
|
has made this ease of deploy a possibility for servers that are not
|
9
9
|
Heroku too. Despite the easiness of a git deploy system managing a
|
10
10
|
series of stages, ie. origin => ci => staging => production, takes some
|
11
|
-
care and consideration. Additionally,
|
12
|
-
the chain causes a reordering of commits and different push
|
11
|
+
care and consideration. Additionally, hot-fixing changes in the middle of
|
12
|
+
the chain causes a reordering of commits and different push procedures
|
13
13
|
that can car reek havok.
|
14
14
|
|
15
15
|
GTA reads git configuration from yml file that should be checked into
|
data/gta.gemspec
CHANGED
data/lib/gta/heroku_db.rb
CHANGED
data/lib/gta/manager.rb
CHANGED
@@ -16,6 +16,10 @@ module GTA
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
def account
|
20
|
+
@account || config && @account
|
21
|
+
end
|
22
|
+
|
19
23
|
def app_name
|
20
24
|
@app_name || config && @app_name
|
21
25
|
end
|
@@ -46,6 +50,7 @@ module GTA
|
|
46
50
|
def config
|
47
51
|
return @config if @config
|
48
52
|
parsed = YAML.load(File.read(config_path))
|
53
|
+
@account = parsed['account']
|
49
54
|
@app_name = parsed['name']
|
50
55
|
@database_config_path = find_database_config(parsed['database_config'])
|
51
56
|
@config = parsed['stages']
|
data/lib/gta/tasks/heroku.rake
CHANGED
@@ -9,23 +9,23 @@ namespace :gta do
|
|
9
9
|
|
10
10
|
def app_argument(args)
|
11
11
|
manager = GTA::Manager.new(GTA::Manager.env_config)
|
12
|
-
"--app #{manager.app_name}-#{stage_name!(args)}"
|
12
|
+
manager.account.blank? ? "--app #{manager.app_name}-#{stage_name!(args)}" : "--app #{manager.app_name}-#{stage_name!(args)} --account #{manager.account}"
|
13
13
|
end
|
14
14
|
|
15
15
|
desc "turn maintenance on for this stage"
|
16
16
|
task :maintenance_on, :stage_name do |t, args|
|
17
|
-
GTA::Commander.new("heroku maintenance:on #{app_argument(args)}").perform
|
17
|
+
Bundler.with_clean_env{ GTA::Commander.new("heroku maintenance:on #{app_argument(args)}").perform }
|
18
18
|
end
|
19
19
|
|
20
20
|
desc "turn maintenance on for this stage"
|
21
21
|
task :maintenance_off, :stage_name do |t, args|
|
22
|
-
GTA::Commander.new("heroku maintenance:off #{app_argument(args)}").perform
|
22
|
+
Bundler.with_clean_env{ GTA::Commander.new("heroku maintenance:off #{app_argument(args)}").perform }
|
23
23
|
end
|
24
24
|
|
25
25
|
desc "run a heroku rake task in specified stage"
|
26
26
|
task :rake, :stage_name, :command do |t, args|
|
27
27
|
command = args[:command]
|
28
|
-
GTA::Commander.new("heroku run rake #{command} #{app_argument(args)}").perform
|
28
|
+
Bundler.with_clean_env{ GTA::Commander.new("heroku run rake #{command} #{app_argument(args)}").perform }
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -7,13 +7,13 @@ namespace :gta do
|
|
7
7
|
|
8
8
|
desc 'fetch and load the remote database'
|
9
9
|
task :pull, :stage_name do |t, args|
|
10
|
-
Rake::Task['gta:heroku:db:fetch'].invoke(args[:stage_name])
|
11
|
-
Rake::Task['gta:heroku:db:load'].invoke(args[:stage_name])
|
10
|
+
Bundler.with_clean_env{ Rake::Task['gta:heroku:db:fetch'].invoke(args[:stage_name]) }
|
11
|
+
Bundler.with_clean_env{ Rake::Task['gta:heroku:db:load'].invoke(args[:stage_name]) }
|
12
12
|
end
|
13
13
|
|
14
14
|
desc 'download the database from the specified stage or from the last stage'
|
15
15
|
task :fetch, :stage_name do |t, args|
|
16
|
-
gta_db.fetch(args[:stage_name])
|
16
|
+
Bundler.with_clean_env{ gta_db.fetch(args[:stage_name]) }
|
17
17
|
end
|
18
18
|
|
19
19
|
desc 'load local database with downloaded backup from stage'
|
@@ -23,7 +23,7 @@ namespace :gta do
|
|
23
23
|
|
24
24
|
desc 'restore remote database from another stage'
|
25
25
|
task :restore, :stage_name do |t, args|
|
26
|
-
gta_db.restore(args[:stage_name], ENV['source'])
|
26
|
+
Bundler.with_clean_env{ gta_db.restore(args[:stage_name], ENV['source']) }
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/lib/gta/version.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
database_config: database.yml # relative from the config file
|
2
|
+
name: activator
|
3
|
+
account: socialchorus
|
4
|
+
|
5
|
+
stages:
|
6
|
+
origin:
|
7
|
+
repository: git@github.com:socialchorus/activator.git
|
8
|
+
|
9
|
+
ci:
|
10
|
+
source: origin
|
11
|
+
tag: ci/*
|
12
|
+
repository: git@github.com:socialchorus/activator.git
|
13
|
+
|
14
|
+
staging:
|
15
|
+
source: ci
|
16
|
+
repository: git@heroku.com:activator-staging.git
|
17
|
+
restorable: true
|
18
|
+
hotfixable: true
|
19
|
+
|
20
|
+
qa:
|
21
|
+
source: staging
|
22
|
+
repository: git@heroku.com:activator-qa.git
|
23
|
+
restorable: true
|
24
|
+
final: true
|
25
|
+
hotfixable: true
|
26
|
+
|
27
|
+
production:
|
28
|
+
source: qa
|
29
|
+
repository: git@heroku.com:activator-production.git
|
data/spec/heroku_db_spec.rb
CHANGED
@@ -33,7 +33,7 @@ describe GTA::HerokuDB do
|
|
33
33
|
it "downloads the latest database backup to an appropriately named file in downloads" do
|
34
34
|
heroku_db.should_receive(:url).and_return('http://heroku-backup-url.com')
|
35
35
|
heroku_db.should_receive(:sh!)
|
36
|
-
.with('curl -o
|
36
|
+
.with('curl -o /tmp/activator-staging.sql "http://heroku-backup-url.com"')
|
37
37
|
heroku_db.fetch
|
38
38
|
end
|
39
39
|
end
|
data/spec/manager_spec.rb
CHANGED
@@ -126,4 +126,13 @@ describe GTA::Manager do
|
|
126
126
|
manager.setup
|
127
127
|
end
|
128
128
|
end
|
129
|
+
|
130
|
+
context 'when heroku account is specified' do
|
131
|
+
let(:config_path_with_account) { File.dirname(__FILE__) + "/fixtures/config/gta_with_account.yml" }
|
132
|
+
let(:manager_with_account) { GTA::Manager.new(config_path_with_account) }
|
133
|
+
|
134
|
+
it 'has an account name' do
|
135
|
+
expect(manager_with_account.account).to eq 'socialchorus'
|
136
|
+
end
|
137
|
+
end
|
129
138
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- socialchorus
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-07-31 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: ansi
|
@@ -68,20 +68,6 @@ dependencies:
|
|
68
68
|
- - '>='
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: '0'
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: heroku
|
73
|
-
requirement: !ruby/object:Gem::Requirement
|
74
|
-
requirements:
|
75
|
-
- - '>='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
78
|
-
type: :development
|
79
|
-
prerelease: false
|
80
|
-
version_requirements: !ruby/object:Gem::Requirement
|
81
|
-
requirements:
|
82
|
-
- - '>='
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: '0'
|
85
71
|
description: 'GTA: the Git Transit Authority - A git based deploy tool for moving
|
86
72
|
code from stage to stage.'
|
87
73
|
email:
|
@@ -126,6 +112,7 @@ files:
|
|
126
112
|
- spec/fixtures/config/database.json
|
127
113
|
- spec/fixtures/config/database.yml
|
128
114
|
- spec/fixtures/config/gta.yml
|
115
|
+
- spec/fixtures/config/gta_with_account.yml
|
129
116
|
- spec/heroku_db_spec.rb
|
130
117
|
- spec/hotfix_spec.rb
|
131
118
|
- spec/local_db_spec.rb
|
@@ -168,6 +155,7 @@ test_files:
|
|
168
155
|
- spec/fixtures/config/database.json
|
169
156
|
- spec/fixtures/config/database.yml
|
170
157
|
- spec/fixtures/config/gta.yml
|
158
|
+
- spec/fixtures/config/gta_with_account.yml
|
171
159
|
- spec/heroku_db_spec.rb
|
172
160
|
- spec/hotfix_spec.rb
|
173
161
|
- spec/local_db_spec.rb
|