| 1 | #!/bin/bash |
| 2 |
|
| 3 | # this file is automatically updated, although the pre-receive hook must be placed manually: |
| 4 | # 'pre-receive' -> '.git/hooks/pre-receive' |
| 5 |
|
| 6 | TARGET="/home/ubuntu/joshstockin-deploy" |
| 7 | GIT_DIR="/home/ubuntu/joshstockin.git" |
| 8 | BRANCH="master" |
| 9 | HTML_OUT="/var/www/html" |
| 10 |
|
| 11 | while read oldrev newrev ref |
| 12 | do |
| 13 | if [ "$ref" = "refs/heads/$BRANCH" ]; |
| 14 | then |
| 15 | echo "Ref $ref received. Deploying ${BRANCH} branch to production..." |
| 16 | mkdir $TARGET |
| 17 | git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH |
| 18 | echo "Installing required Python modules" |
| 19 | sudo python3 -m pip install -r $TARGET/requirements.txt |
| 20 | echo "Compiling root HTML" |
| 21 | sudo $TARGET/root/compile.py $HTML_OUT |
| 22 | echo "Installing nginx configuration" |
| 23 | sudo $TARGET/nginx/copynginx prod |
| 24 | echo "Installing resty-gitweb configuration" |
| 25 | sudo install $TARGET/resty-gitweb.yaml /etc/resty-gitweb.yaml |
| 26 | echo "Removing deploy directory" |
| 27 | rm -rf $TARGET |
| 28 | else |
| 29 | echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server." |
| 30 | fi |
| 31 | done |
| 32 |
|