Skip to content

Instantly share code, notes, and snippets.

@david-hodgetts
Created August 10, 2015 13:09
Show Gist options
  • Save david-hodgetts/75546bd1df5f27a34c47 to your computer and use it in GitHub Desktop.
Save david-hodgetts/75546bd1df5f27a34c47 to your computer and use it in GitHub Desktop.
ruby post receive hook (deploy with git) (hooks/post-receive)
#!/usr/bin/env ruby
# post-receive
# 1. Read STDIN (Format: "from_commit to_commit branch_name")
from, to, branch = ARGF.read.split " "
# 2. Only deploy if master branch was pushed
if (branch =~ /master$/) == nil
puts "Received branch #{branch}, not deploying."
exit
end
# 3. Copy files to deploy directory
deploy_to_dir = File.expand_path('../deploy')
`GIT_WORK_TREE="#{deploy_to_dir}" git checkout -f master`
puts "DEPLOY: master(#{to}) copied to '#{deploy_to_dir}'"
# 4.TODO: Deployment Tasks
# i.e.: Run Puppet Apply, Restart Daemons, etc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment