Skip to content

Instantly share code, notes, and snippets.

@pivotal-legacy
Forked from ezmobius/gist:114954
Created July 7, 2009 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pivotal-legacy/142237 to your computer and use it in GitHub Desktop.
Save pivotal-legacy/142237 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# solo
def usage(message)
$stderr.puts message
$stderr.puts
$stderr.puts "#{File.basename($0)} envname [commit] [migrate]"
exit 1
end
envname = ARGV.shift || usage("Specify the envname")
commit = ARGV.shift || 'HEAD'
migrate = ARGV.shift
if commit == 'migrate'
commit = 'HEAD'
migrate = 'migrate'
end
token = `git config --get cloud.token`.chomp
if token.empty?
$stderr.puts <<-EOT
The cloud token is not set."
To store the token, use:
$ git config --add cloud.token SOMETOKEN
EOT
exit 2
end
hash = `git rev-parse #{commit}`.chomp
payload = {
"commits" => [{"id" => hash, "message"=>"[deploy #{envname}#{migrate ? ' migrate' : ''}]"}],
"ref" => "refs/heads/master",
}
require 'rubygems'
require 'json'
require 'restclient'
puts "Triggering a deploy for #{hash} on #{envname}"
begin
response = RestClient.post("https://cloud.engineyard.com/github/#{token}",
:payload => payload.to_json)
puts "Successfully triggered the deploy"
rescue RestClient::RequestFailed => e
puts "Could not deploy your changes"
puts e.response.code
puts e.response.body
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment