capistrano-gitflow 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,9 @@ Gitflow simply adds some tagging/logging/workflow magic.
10
10
  # AFTER
11
11
  $ cap deploy
12
12
  # 'master' goes to staging; tag staging-YYYY-MM-DD.X created
13
- $ cap production deploy -s tag=staging-YYYY-MM-DD-X-user-description
13
+ $ cap production deploy
14
+ # deploys latest staging tag, or if last tag is a production tag then that, to production
15
+ # for specifying the tag by hand add `-s tag=staging-YYYY-MM-DD-X-user-description`
14
16
  # tag 'staging-YYYY-MM-DD-X' goes to production
15
17
  # tag 'production-YYYY-MM-DD-X' created; points to staging-YYYY-MM-DD-X
16
18
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.0
1
+ 1.4.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{capistrano-gitflow}
8
- s.version = "1.4.0"
8
+ s.version = "1.4.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Joshua Nichols"]
12
- s.date = %q{2010-07-16}
12
+ s.date = %q{2010-10-26}
13
13
  s.description = %q{Capistrano recipe for a deployment workflow based on git tags}
14
14
  s.email = %q{josh@technicalpickles.com}
15
15
  s.extra_rdoc_files = [
@@ -17,32 +17,31 @@ Gem::Specification.new do |s|
17
17
  ]
18
18
  s.files = [
19
19
  ".document",
20
- "README.rdoc",
21
- "Rakefile",
22
- "VERSION",
23
- "capistrano-gitflow.gemspec",
24
- "lib/capistrano/gitflow.rb",
25
- "lib/capistrano/gitflow/natcmp.rb",
26
- "recipes/gitflow_recipes.rb",
27
- "spec/gitflow_spec.rb",
28
- "spec/spec.opts",
29
- "spec/spec_helper.rb"
20
+ "README.rdoc",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "capistrano-gitflow.gemspec",
24
+ "lib/capistrano/gitflow.rb",
25
+ "lib/capistrano/gitflow/natcmp.rb",
26
+ "recipes/gitflow_recipes.rb",
27
+ "spec/gitflow_spec.rb",
28
+ "spec/spec.opts",
29
+ "spec/spec_helper.rb"
30
30
  ]
31
31
  s.homepage = %q{http://github.com/technicalpickles/capistrano-gitflow}
32
- s.rdoc_options = ["--charset=UTF-8"]
33
32
  s.require_paths = ["lib"]
34
- s.rubygems_version = %q{1.3.6}
33
+ s.rubygems_version = %q{1.3.7}
35
34
  s.summary = %q{Capistrano recipe for a deployment workflow based on git tags}
36
35
  s.test_files = [
37
36
  "spec/gitflow_spec.rb",
38
- "spec/spec_helper.rb"
37
+ "spec/spec_helper.rb"
39
38
  ]
40
39
 
41
40
  if s.respond_to? :specification_version then
42
41
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
43
42
  s.specification_version = 3
44
43
 
45
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
44
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
45
  s.add_runtime_dependency(%q<capistrano>, [">= 0"])
47
46
  s.add_runtime_dependency(%q<stringex>, [">= 0"])
48
47
  s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
@@ -46,12 +46,17 @@ module Capistrano
46
46
  last_tag_matching('production-*')
47
47
  end
48
48
 
49
+ def using_git?
50
+ fetch(:scm, :git).to_sym == :git
51
+ end
52
+
49
53
  task :verify_up_to_date do
50
- set :local_branch, `git branch --no-color 2> /dev/null | sed -e '/^[^*]/d'`.gsub(/\* /, '').chomp
51
- set :local_sha, `git log --pretty=format:%H HEAD -1`.chomp
52
- set :origin_sha, `git log --pretty=format:%H #{local_branch} -1`
53
- unless local_sha == origin_sha
54
- abort """
54
+ if using_git?
55
+ set :local_branch, `git branch --no-color 2> /dev/null | sed -e '/^[^*]/d'`.gsub(/\* /, '').chomp
56
+ set :local_sha, `git log --pretty=format:%H HEAD -1`.chomp
57
+ set :origin_sha, `git log --pretty=format:%H #{local_branch} -1`
58
+ unless local_sha == origin_sha
59
+ abort """
55
60
  Your #{local_branch} branch is not up to date with origin/#{local_branch}.
56
61
  Please make sure you have pulled and pushed all code before deploying:
57
62
 
@@ -60,19 +65,22 @@ Please make sure you have pulled and pushed all code before deploying:
60
65
  git push origin #{local_branch}
61
66
 
62
67
  """
68
+ end
63
69
  end
64
70
  end
65
71
 
66
72
  desc "Calculate the tag to deploy"
67
73
  task :calculate_tag do
68
- # make sure we have any other deployment tags that have been pushed by others so our auto-increment code doesn't create conflicting tags
69
- `git fetch`
74
+ if using_git?
75
+ # make sure we have any other deployment tags that have been pushed by others so our auto-increment code doesn't create conflicting tags
76
+ `git fetch`
70
77
 
71
- send "tag_#{stage}"
78
+ send "tag_#{stage}"
72
79
 
73
- system "git push --tags origin #{local_branch}"
74
- if $? != 0
75
- abort "git push failed"
80
+ system "git push --tags origin #{local_branch}"
81
+ if $? != 0
82
+ abort "git push failed"
83
+ end
76
84
  end
77
85
  end
78
86
 
@@ -121,11 +129,11 @@ Please make sure you have pulled and pushed all code before deploying:
121
129
  `git log --pretty=format:%H #{last_staging_tag} -1`
122
130
  end
123
131
 
124
- new_staging_tag = next_staging_tag
125
132
  if last_staging_tag_sha == current_sha
126
133
  puts "Not re-tagging staging because the most recent tag (#{last_staging_tag}) already points to current head"
127
134
  new_staging_tag = last_staging_tag
128
135
  else
136
+ new_staging_tag = next_staging_tag
129
137
  puts "Tagging current branch for deployment to staging as '#{new_staging_tag}'"
130
138
  system "git tag -a -m 'tagging current code for deployment to staging' #{new_staging_tag}"
131
139
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-gitflow
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 5
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 4
8
- - 0
9
- version: 1.4.0
9
+ - 1
10
+ version: 1.4.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Joshua Nichols
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-07-16 00:00:00 -04:00
18
+ date: 2010-10-26 00:00:00 -04:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: capistrano
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -33,9 +36,11 @@ dependencies:
33
36
  name: stringex
34
37
  prerelease: false
35
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
36
40
  requirements:
37
41
  - - ">="
38
42
  - !ruby/object:Gem::Version
43
+ hash: 3
39
44
  segments:
40
45
  - 0
41
46
  version: "0"
@@ -45,9 +50,11 @@ dependencies:
45
50
  name: rspec
46
51
  prerelease: false
47
52
  requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
48
54
  requirements:
49
55
  - - ">="
50
56
  - !ruby/object:Gem::Version
57
+ hash: 13
51
58
  segments:
52
59
  - 1
53
60
  - 2
@@ -80,28 +87,32 @@ homepage: http://github.com/technicalpickles/capistrano-gitflow
80
87
  licenses: []
81
88
 
82
89
  post_install_message:
83
- rdoc_options:
84
- - --charset=UTF-8
90
+ rdoc_options: []
91
+
85
92
  require_paths:
86
93
  - lib
87
94
  required_ruby_version: !ruby/object:Gem::Requirement
95
+ none: false
88
96
  requirements:
89
97
  - - ">="
90
98
  - !ruby/object:Gem::Version
99
+ hash: 3
91
100
  segments:
92
101
  - 0
93
102
  version: "0"
94
103
  required_rubygems_version: !ruby/object:Gem::Requirement
104
+ none: false
95
105
  requirements:
96
106
  - - ">="
97
107
  - !ruby/object:Gem::Version
108
+ hash: 3
98
109
  segments:
99
110
  - 0
100
111
  version: "0"
101
112
  requirements: []
102
113
 
103
114
  rubyforge_project:
104
- rubygems_version: 1.3.6
115
+ rubygems_version: 1.3.7
105
116
  signing_key:
106
117
  specification_version: 3
107
118
  summary: Capistrano recipe for a deployment workflow based on git tags