-
Notifications
You must be signed in to change notification settings - Fork 45
95 lines (84 loc) · 3.84 KB
/
vercel-production.yml
File metadata and controls
95 lines (84 loc) · 3.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
---
name: "Vercel Production Deployment"
"on":
push:
branches: ["main"]
workflow_dispatch:
jobs:
deploy-production:
name: "Deploy to Production"
runs-on: "depot-ubuntu-latest"
timeout-minutes: 15
permissions:
contents: "read"
deployments: "write"
steps:
- name: "Checkout code"
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6
- name: "Setup Node.js"
uses: "actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238" # v6
with:
node-version: 22
- name: "Start deployment"
run: |
echo "🚀 Starting production deployment to authzed.com/docs"
echo "📦 Commit: ${{ github.sha }}"
echo "👤 Triggered by: ${{ github.actor }}"
echo "⏰ Timestamp: $(date -u '+%Y-%m-%d %H:%M:%S UTC')"
- name: "Deploy to Vercel Production"
id: "deploy"
env:
VERCEL_TOKEN: "${{ secrets.VERCEL_TOKEN }}"
VERCEL_ORG_ID: "${{ secrets.VERCEL_ORG_ID }}"
VERCEL_PROJECT_ID: "${{ secrets.VERCEL_PROJECT_ID }}"
run: |
npm install --global vercel@latest
DEPLOY_URL=$(vercel deploy --token "$VERCEL_TOKEN" --prod --yes | tail -1)
echo "preview-url=$DEPLOY_URL" >> $GITHUB_OUTPUT
- name: "Create GitHub Deployment"
uses: "chrnorm/deployment-action@55729fcebec3d284f60f5bcabbd8376437d696b1" # v2
id: "github-deployment"
with:
token: "${{ secrets.GITHUB_TOKEN }}"
environment: "Production"
environment-url: "https://authzed.com/docs"
auto-inactive: false
- name: "Update deployment status to success"
if: "success()"
uses: "chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806" # v2
with:
token: "${{ secrets.GITHUB_TOKEN }}"
deployment-id: "${{ steps.github-deployment.outputs.deployment_id }}"
state: "success"
environment-url: "https://authzed.com/docs"
- name: "Update deployment status to failure"
if: "failure()"
uses: "chrnorm/deployment-status@9a72af4586197112e0491ea843682b5dc280d806" # v2
with:
token: "${{ secrets.GITHUB_TOKEN }}"
deployment-id: "${{ steps.github-deployment.outputs.deployment_id }}"
state: "failure"
- name: "Generate deployment summary"
if: "success()"
run: |
echo "## ✅ Production Deployment Successful" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Deployment URL:** https://authzed.com/docs" >> $GITHUB_STEP_SUMMARY
echo "**Vercel URL:** ${{ steps.deploy.outputs.preview-url }}" >> $GITHUB_STEP_SUMMARY
echo "**Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
echo "**Deployed by:** @${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
echo "**Timestamp:** $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "🎉 Production docs site is now live at https://authzed.com/docs" >> $GITHUB_STEP_SUMMARY
- name: "Generate failure summary"
if: "failure()"
run: |
echo "## ❌ Production Deployment Failed" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Commit:** \`${{ github.sha }}\`" >> $GITHUB_STEP_SUMMARY
echo "**Triggered by:** @${{ github.actor }}" >> $GITHUB_STEP_SUMMARY
echo "**Timestamp:** $(date -u '+%Y-%m-%d %H:%M:%S UTC')" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "⚠️ Check the workflow logs above for error details." >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Workflow Run:** ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" >> $GITHUB_STEP_SUMMARY