#!/usr/bin/env python # post-receive hook for git-based deployments import sys import os from subprocess import call # configuration deploy_to_path = '/path/to/deploy/directory/' deploy_branch = 'master' def post_receive(from_commit, to_commit, branch_name): # Don't deploy if pushed branch != deploy_branch if not branch_name.endswith(deploy_branch): print('Received branch ' + branch_name + ', not deploying.') sys.exit() # copy files to deploy directory call('GIT_WORK_TREE="' + deploy_to_path + '" git checkout -f ' + branch_name, shell=True) print('DEPLOY: ' + branch_name + '(' + to_commit + ') copied to ' + deploy_to_path) # TODO: Deployment Tasks # i.e. Run a script, restart daemons, etc if __name__ == '__main__': # get values from STDIN fc,tc,bn = sys.stdin.read().split() post_receive(fc, tc, bn)