@@ -10,79 +10,27 @@ permissions:
1010 pages : write
1111 id-token : write
1212
13+ env :
14+ NODE_VERSION : 20
15+ PNPM_VERSION : " 10.14.0"
16+
1317concurrency :
1418 group : " pages"
1519 cancel-in-progress : false
1620
17- env :
18- BUILD_PATH : " ."
19-
2021jobs :
2122 build :
2223 name : Build
23- runs-on : ubuntu-latest
24+ runs-on : ubuntu-22.04
2425 steps :
25- - name : Checkout
26+ - name : Checkout git repo
2627 uses : actions/checkout@v4
27-
28- - name : Detect package manager
29- id : detect-package-manager
30- run : |
31- if [ -f "${{ github.workspace }}/pnpm-lock.yaml" ]; then
32- echo "manager=pnpm" >> $GITHUB_OUTPUT
33- echo "command=install --frozen-lockfile" >> $GITHUB_OUTPUT
34- echo "runner=pnpm" >> $GITHUB_OUTPUT
35- echo "lockfile=pnpm-lock.yaml" >> $GITHUB_OUTPUT
36- exit 0
37- elif [ -f "${{ github.workspace }}/yarn.lock" ]; then
38- echo "manager=yarn" >> $GITHUB_OUTPUT
39- echo "command=install" >> $GITHUB_OUTPUT
40- echo "runner=yarn" >> $GITHUB_OUTPUT
41- echo "lockfile=yarn.lock" >> $GITHUB_OUTPUT
42- exit 0
43- elif [ -f "${{ github.workspace }}/package-lock.json" ]; then
44- echo "manager=npm" >> $GITHUB_OUTPUT
45- echo "command=ci" >> $GITHUB_OUTPUT
46- echo "runner=npx --no-install" >> $GITHUB_OUTPUT
47- echo "lockfile=package-lock.json" >> $GITHUB_OUTPUT
48- exit 0
49- else
50- echo "Unable to determine package manager"
51- exit 1
52- fi
53-
54- - name : Setup Node
55- uses : actions/setup-node@v4
56- with :
57- node-version : " 20"
58- cache : ${{ steps.detect-package-manager.outputs.manager }}
59- cache-dependency-path : ${{ env.BUILD_PATH }}/${{ steps.detect-package-manager.outputs.lockfile }}
60-
61- - name : Install pnpm (if needed)
62- if : ${{ steps.detect-package-manager.outputs.manager == 'pnpm' }}
63- uses : pnpm/action-setup@v4
64- with :
65- version : 10
66-
67- - name : Setup Pages
68- id : pages
69- uses : actions/configure-pages@v5
70-
71- - name : Install dependencies
72- run : ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
73- working-directory : ${{ env.BUILD_PATH }}
74-
75- - name : Build with Astro
76- run : |
77- ${{ steps.detect-package-manager.outputs.runner }} astro build \
78- --site "${{ steps.pages.outputs.origin }}" \
79- --base "${{ steps.pages.outputs.base_path }}"
80- working-directory : ${{ env.BUILD_PATH }}
81-
82- - name : Upload artifact
83- uses : actions/upload-pages-artifact@v3
28+ - name : Install, build, and upload site
29+ uses : withastro/action@v3
8430 with :
85- path : ${{ env.BUILD_PATH }}/dist
31+ path : .
32+ node-version : ${{ env.NODE_VERSION }} # local version is 24 *shrug*
33+ package-manager : pnpm@${{ env.PNPM_VERSION }}
8634
8735 deploy :
8836 environment :
0 commit comments