1- name : deployment from main branch
2-
3- permissions :
4- contents : write
1+ name : production deployment
52
63on :
7- push :
8- branches :
9- - main
10- paths-ignore :
11- - ' *.md'
124 workflow_dispatch :
135
146jobs :
1810 steps :
1911 - name : Checkout code
2012 uses : actions/checkout@v5
21- with :
22- fetch-depth : 0
23- persist-credentials : true
24-
25- - name : Fetch tags
26- run : git fetch --tags --force
27-
28- - name : Compute diff since last deploy (database/scripts only)
29- id : diff
30- run : |
31- if git rev-parse deploy-prod >/dev/null 2>&1; then
32- if git diff --quiet deploy-prod...HEAD -- database/ scripts/; then
33- echo "db_changed=false" >> $GITHUB_OUTPUT
34- echo "No changes in database"
35- else
36- echo "db_changed=true" >> $GITHUB_OUTPUT
37- echo "Changes detected in database"
38- fi
39- else
40- echo "db_changed=true" >> $GITHUB_OUTPUT
41- echo "No deploy-prod tag found"
42- fi
4313
4414 - name : Install pnpm
4515 uses : pnpm/action-setup@v4
5828 - name : Generate SvelteKit config
5929 run : pnpm svelte-kit sync
6030
61- - name : Set deployment status
62- if : steps.diff.outputs.db_changed == 'true'
63- env :
64- DB_URL : ${{ secrets.DB_URL }}
65- DB_AUTH_TOKEN : ${{ secrets.DB_AUTH_TOKEN }}
66- run : pnpm db:start-deploy
67-
6831 - name : Update database
69- if : steps.diff.outputs.db_changed == 'true'
7032 env :
7133 DB_URL : ${{ secrets.DB_URL }}
7234 DB_AUTH_TOKEN : ${{ secrets.DB_AUTH_TOKEN }}
@@ -81,27 +43,11 @@ jobs:
8143 INTERNAL_API_KEY : ${{ secrets.INTERNAL_API_KEY }}
8244 run : pnpm build
8345
84- - name : Deploy to Netlify
46+ - name : Deploy to Netlify - Production
8547 run : |
8648 pnpm exec netlify deploy --no-build \
8749 --dir build \
8850 --site ${{ secrets.NETLIFY_SITE_ID }} \
8951 --auth ${{ secrets.NETLIFY_ACCESS_TOKEN }} \
9052 --message "${{ github.event.head_commit.message }}" \
9153 --prod
92-
93- - name : Update deploy tag
94- if : github.ref == 'refs/heads/main'
95- run : |
96- git config user.name "github-actions[bot]"
97- git config user.email "github-actions[bot]@users.noreply.github.com"
98-
99- git tag -f deploy-prod $GITHUB_SHA
100- git push --no-verify origin refs/tags/deploy-prod --force
101-
102- - name : Reset deployment status
103- if : always()
104- env :
105- DB_URL : ${{ secrets.DB_URL }}
106- DB_AUTH_TOKEN : ${{ secrets.DB_AUTH_TOKEN }}
107- run : pnpm db:finish-deploy
0 commit comments