1- name : Deploy
1+ # Simple workflow for deploying static content to GitHub Pages
2+ name : Deploy static content to Pages
23
34on :
5+ # Runs on pushes targeting the default branch
46 push :
5- branches :
6- - main
7+ branches : ['main']
78
8- jobs :
9- build :
10- name : Build
11- runs-on : ubuntu-latest
12-
13- steps :
14- - name : Checkout repo
15- uses : actions/checkout@v3
9+ # Allows you to run this workflow manually from the Actions tab
10+ workflow_dispatch :
1611
17- - name : Setup Node
18- uses : actions/setup-node@v3
19-
20- - name : Install dependencies
21- uses : bahmutov/npm-install@v1
22-
23- - name : Build project
24- run : npm run build
12+ # Sets the GITHUB_TOKEN permissions to allow deployment to GitHub Pages
13+ permissions :
14+ contents : read
15+ pages : write
16+ id-token : write
2517
26- - name : Upload production-ready build files
27- uses : actions/upload-artifact@v3
28- with :
29- name : production-files
30- path : ./dist
18+ # Allow one concurrent deployment
19+ concurrency :
20+ group : ' pages'
21+ cancel-in-progress : true
3122
23+ jobs :
24+ # Single deploy job since we're just deploying
3225 deploy :
33- name : Deploy
34- needs : build
26+ environment :
27+ name : github-pages
28+ url : ${{ steps.deployment.outputs.page_url }}
3529 runs-on : ubuntu-latest
36- if : github.ref == 'refs/heads/main'
37-
3830 steps :
39- - name : Download artifact
40- uses : actions/download-artifact@v3
31+ - name : Checkout
32+ uses : actions/checkout@v4
33+ - name : Set up Node
34+ uses : actions/setup-node@v4
4135 with :
42- name : production-files
43- path : ./dist
44-
45- - name : Deploy to GitHub Pages
46- uses : peaceiris/actions-gh-pages@v3
36+ node-version : 20
37+ cache : ' npm'
38+ - name : Install dependencies
39+ run : npm ci
40+ - name : Build
41+ run : npm run build
42+ - name : Setup Pages
43+ uses : actions/configure-pages@v4
44+ - name : Upload artifact
45+ uses : actions/upload-pages-artifact@v3
4746 with :
48- github_token : ${{ secrets.GITHUB_TOKEN }}
49- publish_dir : ./dist
47+ # Upload dist folder
48+ path : ' ./dist'
49+ - name : Deploy to GitHub Pages
50+ id : deployment
51+ uses : actions/deploy-pages@v4
0 commit comments