diff options
Diffstat (limited to 'deploy.sh')
| -rwxr-xr-x | deploy.sh | 34 |
1 files changed, 21 insertions, 13 deletions
@@ -7,6 +7,9 @@ FQDN="doot.terst.org" SITE_DIR="/site/${FQDN}" SERVICE="task-dashboard@${FQDN}" +echo "==> Building CSS..." +npm run css:build + echo "==> Building binary (linux/amd64)..." GOOS=linux GOARCH=amd64 go build -o app cmd/dashboard/main.go @@ -16,6 +19,14 @@ git push ${REMOTE} master echo "==> Uploading binary..." scp app ${REMOTE}:${SITE_DIR}/app.new +echo "==> Syncing assets and migrations..." +# Sync static files (including built CSS which is git-ignored) +rsync -avz --delete web/static/ ${REMOTE}:${SITE_DIR}/public/ +# Sync templates +rsync -avz --delete web/templates/ ${REMOTE}:${SITE_DIR}/templates/ +# Sync migrations (required for app startup) +rsync -avz --delete migrations/ ${REMOTE}:${SITE_DIR}/migrations/ + echo "==> Deploying on ${REMOTE}..." ssh ${REMOTE} bash -s << 'EOF' set -e @@ -31,19 +42,16 @@ systemctl stop ${SERVICE} || true echo "Swapping binary..." mv app.new app -echo "Checking out latest code..." -cd app-code -GIT_WORK_TREE=${SITE_DIR}/checkout git checkout -f master 2>/dev/null || { - mkdir -p ${SITE_DIR}/checkout - GIT_WORK_TREE=${SITE_DIR}/checkout git checkout -f master -} -cd ${SITE_DIR} - -echo "Syncing static files..." -rsync -a --delete checkout/web/static/ public/ - -echo "Syncing templates..." -rsync -a --delete checkout/web/templates/ templates/ +echo "Checking out latest code (backup)..." +# We keep this for reference, but we deployed assets via rsync from local +if [ -d "app-code" ]; then + cd app-code + GIT_WORK_TREE=${SITE_DIR}/checkout git checkout -f master 2>/dev/null || { + mkdir -p ${SITE_DIR}/checkout + GIT_WORK_TREE=${SITE_DIR}/checkout git checkout -f master + } + cd ${SITE_DIR} +fi echo "Setting permissions..." chown -R www-data:www-data ${SITE_DIR} |
