Added support for customizable tag commit messages

This commit is contained in:
Bram Swenson
2014-04-30 12:06:35 -07:00
parent 7c50957282
commit 7bbf24343e
3 changed files with 22 additions and 3 deletions
+1
View File
@@ -1 +1,2 @@
.rbenv-version
.bundle
+10 -2
View File
@@ -43,6 +43,15 @@ module Capistrano
exists?(:git_remote) ? git_remote : `git remote`.strip.split(/\n/).first
end
def commit_message(current_sha)
if exists?(:deploytag_commit_message)
deploytag_commit_message
else
tag_user = (ENV['USER'] || ENV['USERNAME'] || 'deployer').strip
"#{tag_user} deployed #{current_sha} to #{stage}"
end
end
def self.load_into(configuration)
configuration.load do
before 'deploy', 'git:prepare_tree'
@@ -78,8 +87,7 @@ module Capistrano
current_sha = `git rev-parse #{branch} HEAD`.strip[0..8]
logger.log Capistrano::Logger::INFO, "Tagging #{current_sha} for deployment"
tag_user = (ENV['USER'] || ENV['USERNAME']).strip
cdt.safe_run 'git', 'tag', '-a', cdt.git_tag_for(stage), '-m', "#{tag_user} deployed #{current_sha} to #{stage}"
cdt.safe_run 'git', 'tag', '-a', cdt.git_tag_for(stage), '-m', cdt.commit_message(current_sha)
cdt.safe_run 'git', 'push', '--tags' if cdt.has_remote?
end
end
+11 -1
View File
@@ -17,7 +17,7 @@ describe Capistrano::DeployTags do
FileUtils.rm_rf tmpdir
FileUtils.mkdir tmpdir
FileUtils.chdir tmpdir
raise unless system("/usr/bin/tar xzf #{File.join(mypath, 'fixtures', 'git-fixture.tar.gz')}")
raise unless system("`which tar` xzf #{File.join(mypath, 'fixtures', 'git-fixture.tar.gz')}")
FileUtils.chdir "#{tmpdir}/git-fixture"
yield
FileUtils.rm_rf tmpdir
@@ -135,5 +135,15 @@ describe Capistrano::DeployTags do
tags.first.should =~ /^test-\d{4}-\d{2}-\d{2}/
end
end
it 'supports configurable commit messages' do
with_clean_repo do
configuration.set(:deploytag_commit_message, 'This is my custom commit message')
configuration.find_and_execute_task('git:tagdeploy')
tags = `git tag -l -n40`.split(/\n/)
tags.should have(1).items
tags.first.should =~ /This is my custom commit message/
end
end
end
end