Skip to content

Instantly share code, notes, and snippets.

@devster
Created November 7, 2013 17:50
Show Gist options
  • Save devster/7358836 to your computer and use it in GitHub Desktop.
Save devster/7358836 to your computer and use it in GitHub Desktop.
Capistrano/Capifony: ask tag or revision hash before a deploy.
set :branch, "master"
task :set_branch_revision do
default_tag = `git tag`.split("\n").last
tag = Capistrano::CLI.ui.ask "Tag to deploy (make sure to push the tag first): [#{default_tag}] "
if tag.empty?
default_revision = `git log origin/#{branch} -n 1 --pretty=format:%H`
default_short_revision = default_revision[0, 10]
revision = Capistrano::CLI.ui.ask "Revision to deploy (on branch #{branch}): [#{default_short_revision}] "
revision = default_revision if revision.empty?
set :revision, revision
end
tag = branch if tag.empty?
set :branch, tag
puts "Tag #{branch} revision #{revision}"
end
before :deploy, 'set_branch_revision'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment