deploy: deploy to prod
Parents:
82859831 file(s) changed
- .github/workflows/deploy.yml +29 -0
.github/workflows/deploy.yml
@@ -53,3 +53,32 @@ file: ./api/Dockerfile.production
53 53 push: true
54 54 tags: ${{ steps.meta.outputs.tags }}
55 55 labels: ${{ steps.meta.outputs.labels }}
56 +
57 +
58 + deploy-production:
59 + name: Deploy to production
60 + needs: build-and-push
61 + runs-on: ubuntu-latest
62 + if: github.ref == 'refs/heads/master'
63 + environment: production
64 +
65 + steps:
66 + - name: Deploy via SSH
67 + uses: appleboy/ssh-action@v1
68 + with:
69 + host: ${{ secrets.VPS_HOST }}
70 + username: ${{ secrets.VPS_USER }}
71 + key: ${{ secrets.VPS_SSH_KEY }}
72 + script: |
73 + set -e
74 + cd /srv/app/production
75 +
76 + docker pull ghcr.io/${{ github.repository }}:latest
77 +
78 + sed -i "s/^IMAGE_TAG=.*/IMAGE_TAG=latest/" .env
79 +
80 + docker compose up -d --no-deps --force-recreate api
81 +
82 + sleep 3
83 + # Dump the logs for a while
84 + docker compose logs --tail=50 api