capistrano-deploy 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +22 -4
- data/capistrano-deploy.gemspec +2 -2
- data/lib/capistrano-deploy/git.rb +4 -2
- data/spec/git_spec.rb +13 -0
- metadata +7 -8
- data/Gemfile.lock +0 -41
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Capistrano deploy recipes [![TravisCI](https://secure.travis-ci.org/lest/capistrano-deploy.png?branch=master)](http://travis-ci.org/lest/capistrano-deploy)
|
1
|
+
Capistrano deploy recipes [![TravisCI](https://secure.travis-ci.org/lest/capistrano-deploy.png?branch=master)](http://travis-ci.org/lest/capistrano-deploy) [![Gemnasium](https://gemnasium.com/lest/capistrano-deploy.png)](https://gemnasium.com/lest/capistrano-deploy)
|
2
2
|
=========================
|
3
3
|
|
4
4
|
Inspired by https://github.com/blog/470-deployment-script-spring-cleaning.
|
@@ -6,18 +6,30 @@ Inspired by https://github.com/blog/470-deployment-script-spring-cleaning.
|
|
6
6
|
Quickstart with Git and Rails
|
7
7
|
-----------------------------
|
8
8
|
|
9
|
-
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'capistrano-deploy', :group => :development, :require => false
|
13
|
+
```
|
14
|
+
|
15
|
+
Create a file named `Capfile` in your project root directory:
|
10
16
|
|
11
17
|
```ruby
|
12
18
|
require 'capistrano-deploy'
|
13
|
-
use_recipes :git, :rails
|
19
|
+
use_recipes :git, :bundle, :rails
|
14
20
|
|
15
21
|
server 'server name or ip address', :web, :app, :db, :primary => true
|
16
22
|
set :user, 'user for deploy'
|
17
23
|
set :deploy_to, '/deploy/to/path'
|
18
24
|
set :repository, 'your git repository'
|
25
|
+
|
26
|
+
after 'deploy:update', 'bundle:install'
|
19
27
|
```
|
20
28
|
|
29
|
+
And then execute:
|
30
|
+
|
31
|
+
bundle
|
32
|
+
|
21
33
|
To setup:
|
22
34
|
|
23
35
|
cap deploy:setup
|
@@ -34,6 +46,12 @@ To look through the changes to be deployed:
|
|
34
46
|
|
35
47
|
cap deploy:pending
|
36
48
|
|
49
|
+
If you want to update to a specific commit (e.g. to rollback):
|
50
|
+
|
51
|
+
cap deploy COMMIT=foobarbaz
|
52
|
+
|
53
|
+
Note: it may be required to run `bundle exec cap ...` instead of `cap ...`.
|
54
|
+
|
37
55
|
Multistage
|
38
56
|
----------
|
39
57
|
|
@@ -84,7 +102,7 @@ Rails Assets
|
|
84
102
|
Use recipe:
|
85
103
|
|
86
104
|
```ruby
|
87
|
-
use_recipe :
|
105
|
+
use_recipe :rails_assets
|
88
106
|
```
|
89
107
|
|
90
108
|
Add callback to precompile assets after update:
|
data/capistrano-deploy.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = 'capistrano-deploy'
|
4
|
-
s.version = '0.3.
|
4
|
+
s.version = '0.3.2'
|
5
5
|
s.platform = Gem::Platform::RUBY
|
6
6
|
s.authors = ['Sergey Nartimov']
|
7
7
|
s.email = ['just.lest@gmail.com']
|
@@ -12,5 +12,5 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
13
13
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
14
14
|
|
15
|
-
s.add_dependency('capistrano', '~> 2.9
|
15
|
+
s.add_dependency('capistrano', '~> 2.9')
|
16
16
|
end
|
@@ -24,14 +24,16 @@ module CapistranoDeploy
|
|
24
24
|
|
25
25
|
desc 'Update the deployed code'
|
26
26
|
task :update, :except => {:no_release => true} do
|
27
|
-
|
27
|
+
commit = ENV['COMMIT'] || "origin/#{branch}"
|
28
|
+
command = ["cd #{deploy_to}", 'git fetch origin', "git reset --hard #{commit}"]
|
28
29
|
command += ['git submodule init', 'git submodule -q sync', 'git submodule -q update'] if enable_submodules
|
29
30
|
run command.join(' && ')
|
30
31
|
end
|
31
32
|
|
32
33
|
desc 'Show pending commits'
|
33
34
|
task :pending do
|
34
|
-
|
35
|
+
commit = ENV['COMMIT'] || "origin/#{branch}"
|
36
|
+
system("git log --pretty=medium --stat #{current_revision}..#{commit}")
|
35
37
|
end
|
36
38
|
end
|
37
39
|
end
|
data/spec/git_spec.rb
CHANGED
@@ -6,6 +6,8 @@ describe 'git' do
|
|
6
6
|
use_recipe :git
|
7
7
|
set :deploy_to, '/foo/bar'
|
8
8
|
end
|
9
|
+
|
10
|
+
ENV.delete('COMMIT')
|
9
11
|
end
|
10
12
|
|
11
13
|
it 'has branch' do
|
@@ -44,6 +46,11 @@ describe 'git' do
|
|
44
46
|
cli_execute 'deploy:update'
|
45
47
|
config.should have_run('cd /foo/bar && git fetch origin && git reset --hard origin/master && git submodule init && git submodule -q sync && git submodule -q update')
|
46
48
|
end
|
49
|
+
|
50
|
+
it 'updates to specific commit' do
|
51
|
+
cli_execute 'deploy:update', 'COMMIT=foobarbaz'
|
52
|
+
config.should have_run('cd /foo/bar && git fetch origin && git reset --hard foobarbaz')
|
53
|
+
end
|
47
54
|
end
|
48
55
|
end
|
49
56
|
|
@@ -58,6 +65,12 @@ describe 'git' do
|
|
58
65
|
cli_execute 'deploy:pending'
|
59
66
|
end
|
60
67
|
|
68
|
+
it 'shows pending against specific commit' do
|
69
|
+
config.should_receive(:current_revision) { 'baz' }
|
70
|
+
config.namespaces[:deploy].should_receive(:system).with('git log --pretty=medium --stat baz..foobarbaz')
|
71
|
+
cli_execute 'deploy:pending', 'COMMIT=foobarbaz'
|
72
|
+
end
|
73
|
+
|
61
74
|
it 'sets forward agent' do
|
62
75
|
config.ssh_options[:forward_agent].should == true
|
63
76
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,19 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02-
|
12
|
+
date: 2012-02-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152701100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.9
|
21
|
+
version: '2.9'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152701100
|
25
25
|
description:
|
26
26
|
email:
|
27
27
|
- just.lest@gmail.com
|
@@ -33,7 +33,6 @@ files:
|
|
33
33
|
- .rspec
|
34
34
|
- .travis.yml
|
35
35
|
- Gemfile
|
36
|
-
- Gemfile.lock
|
37
36
|
- MIT-LICENSE
|
38
37
|
- README.md
|
39
38
|
- Rakefile
|
@@ -73,7 +72,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
73
72
|
version: '0'
|
74
73
|
segments:
|
75
74
|
- 0
|
76
|
-
hash:
|
75
|
+
hash: 3055610007075838106
|
77
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
77
|
none: false
|
79
78
|
requirements:
|
@@ -82,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
81
|
version: '0'
|
83
82
|
segments:
|
84
83
|
- 0
|
85
|
-
hash:
|
84
|
+
hash: 3055610007075838106
|
86
85
|
requirements: []
|
87
86
|
rubyforge_project:
|
88
87
|
rubygems_version: 1.8.11
|
data/Gemfile.lock
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
capistrano-deploy (0.3.1)
|
5
|
-
capistrano (~> 2.9.0)
|
6
|
-
|
7
|
-
GEM
|
8
|
-
remote: http://rubygems.org/
|
9
|
-
specs:
|
10
|
-
capistrano (2.9.0)
|
11
|
-
highline
|
12
|
-
net-scp (>= 1.0.0)
|
13
|
-
net-sftp (>= 2.0.0)
|
14
|
-
net-ssh (>= 2.0.14)
|
15
|
-
net-ssh-gateway (>= 1.1.0)
|
16
|
-
diff-lcs (1.1.3)
|
17
|
-
highline (1.6.9)
|
18
|
-
net-scp (1.0.4)
|
19
|
-
net-ssh (>= 1.99.1)
|
20
|
-
net-sftp (2.0.5)
|
21
|
-
net-ssh (>= 2.0.9)
|
22
|
-
net-ssh (2.2.2)
|
23
|
-
net-ssh-gateway (1.1.0)
|
24
|
-
net-ssh (>= 1.99.1)
|
25
|
-
rake (0.9.2.2)
|
26
|
-
rspec (2.8.0)
|
27
|
-
rspec-core (~> 2.8.0)
|
28
|
-
rspec-expectations (~> 2.8.0)
|
29
|
-
rspec-mocks (~> 2.8.0)
|
30
|
-
rspec-core (2.8.0)
|
31
|
-
rspec-expectations (2.8.0)
|
32
|
-
diff-lcs (~> 1.1.2)
|
33
|
-
rspec-mocks (2.8.0)
|
34
|
-
|
35
|
-
PLATFORMS
|
36
|
-
ruby
|
37
|
-
|
38
|
-
DEPENDENCIES
|
39
|
-
capistrano-deploy!
|
40
|
-
rake
|
41
|
-
rspec
|