@@ -10,51 +10,104 @@ jobs:
1010 build-and-deploy :
1111 runs-on : ubuntu-latest
1212 steps :
13- - uses : actions/checkout@v1
13+ - uses : actions/checkout@v4
1414 - uses : pnpm/action-setup@v2
1515 with :
16- version : 7.1 .0
17- - uses : actions/setup-node@v2
16+ version : 8.6 .0
17+ - uses : actions/setup-node@v3
1818 with :
19- node-version : 14
19+ node-version : 18
2020 cache : " pnpm"
21+ - name : Setup Build Environment
22+ run : |
23+ sudo apt-get update
24+ sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libkrb5-dev libxss1 dbus libgtk-3-0 libgbm1
25+ - run : yarn global add node-gyp
26+ -
run :
pnpm add -g [email protected] 2127
2228 - run : pnpm install
23- - run : pnpm build
29+
30+ - name : Build
31+ run : |
32+ if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
33+ export DETH_IFRAME_URL="https://code.deth.net"
34+ else
35+ export DETH_IFRAME_URL="https://dethcode.vercel.app"
36+ fi
37+
38+ yarn build
2439
2540 - run : pnpm prepare-deploy
2641
27- # deployment per branch
28- - uses : superactions/deploy-branch-action@action
29- if : ${{ github.ref != 'refs/heads/main' }}
42+ # --- preview deployments
43+ - name : Deploy host to Vercel - STAGING
44+ uses : nick-fields/retry@v2
45+ with :
46+ command : |
47+ cd packages/vscode-host/dist
48+ vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
49+ vercel build --token=${{ secrets.VERCEL_TOKEN }} # creates vercel output directory
50+
51+ cp -R ./node_modules ./.vercel/output/static/ # force add node_modules to output directory
52+
53+ vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
54+ max_attempts : 3
55+ timeout_minutes : 10
56+ env :
57+ VERCEL_ORG_ID : ${{ secrets.VERCEL_ORG_ID }}
58+ VERCEL_PROJECT_ID : ${{ secrets.VERCEL_HOST_PREVIEW_HOST_PROJECT_ID }}
59+
60+ - name : Deploy entrypoint to Vercel - STAGING
61+ uses : nick-fields/retry@v2
3062 with :
31- directory : packages/vscode-host/dist
63+ command : |
64+ cd packages/entrypoint/dist
65+ vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
66+ vercel build --token=${{ secrets.VERCEL_TOKEN }} # creates vercel output directory
67+
68+ cp -R ./node_modules ./.vercel/output/static/ # force add node_modules to output directory
69+
70+ vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }}
71+ max_attempts : 3
72+ timeout_minutes : 10
73+ env :
74+ VERCEL_ORG_ID : ${{ secrets.VERCEL_ORG_ID }}
75+ VERCEL_PROJECT_ID :
76+ ${{ secrets.VERCEL_ENTRYPOINT_PREVIEW_HOST_PROJECT_ID }}
3277
3378 # --- production deployments (only on main)
34- # deploy app
35- - uses : ngduc/vercel-deploy-action@master
79+ - name : Deploy host to Vercel - PRODUCTION
3680 if : ${{ github.ref == 'refs/heads/main' }}
81+ uses : nick-fields/retry@v2
3782 with :
38- vercel-cli : vercel
39- vercel-project-id : ${{ secrets.VERCEL_APP_PROJECT_ID}}
40- vercel-org-id : ${{ secrets.VERCEL_ORG_ID}}
41- vercel-token : ${{ secrets.VERCEL_TOKEN }}
42- scope : ${{ secrets.VERCEL_ORG_ID }}
43- working-directory : packages/vscode-host/dist
44- vercel-args : " --prod"
83+ command : |
84+ cd packages/vscode-host/dist
85+ vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
86+ vercel build --token=${{ secrets.VERCEL_TOKEN }} # creates vercel output directory
87+
88+ cp -R ./node_modules ./.vercel/output/static/ # force add node_modules to output directory
89+
90+ vercel deploy --prebuilt --production --token=${{ secrets.VERCEL_TOKEN }}
91+ max_attempts : 3
92+ timeout_minutes : 10
4593 env :
46- ACTIONS_ALLOW_UNSECURE_COMMANDS : true
94+ VERCEL_ORG_ID : ${{ secrets.VERCEL_ORG_ID }}
95+ VERCEL_PROJECT_ID : ${{ secrets.VERCEL_APP_PROJECT_ID }}
4796
48- # deploy entrypoint (no preview)
49- - uses : ngduc/vercel-deploy-action@master
97+ - name : Deploy entrypoint to Vercel - PRODUCTION
5098 if : ${{ github.ref == 'refs/heads/main' }}
99+ uses : nick-fields/retry@v2
51100 with :
52- vercel-cli : vercel
53- vercel-project-id : ${{ secrets.VERCEL_ENTRYPOINT_PROJECT_ID}}
54- vercel-org-id : ${{ secrets.VERCEL_ORG_ID}}
55- vercel-token : ${{ secrets.VERCEL_TOKEN }}
56- scope : ${{ secrets.VERCEL_ORG_ID }}
57- working-directory : packages/entrypoint/dist
58- vercel-args : " --prod"
101+ command : |
102+ cd packages/entrypoint/dist
103+ vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }}
104+ vercel build --token=${{ secrets.VERCEL_TOKEN }} # creates vercel output directory
105+
106+ cp -R ./node_modules ./.vercel/output/static/ # force add node_modules to output directory
107+
108+ vercel deploy --prebuilt --production --token=${{ secrets.VERCEL_TOKEN }}
109+ max_attempts : 3
110+ timeout_minutes : 10
59111 env :
60- ACTIONS_ALLOW_UNSECURE_COMMANDS : true
112+ VERCEL_ORG_ID : ${{ secrets.VERCEL_ORG_ID }}
113+ VERCEL_PROJECT_ID : ${{ secrets.VERCEL_ENTRYPOINT_PROJECT_ID }}
0 commit comments