Skip to content

Commit b8d21cc

Browse files
committed
👷 Setup CI to deploy slides to GitHub Pages
Set up GitHub Actions workflow to install pnpm/node, run the build, upload artifacts, and then does deploy in separate job.
1 parent d5165a4 commit b8d21cc

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

.github/workflows/deploy.yaml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Deploy presentation slides to GitHub Pages
2+
name: Deploy slides
3+
4+
on:
5+
push:
6+
branches: [main]
7+
workflow_dispatch:
8+
9+
concurrency:
10+
group: pages
11+
cancel-in-progress: false
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-24.04
16+
permissions:
17+
contents: read
18+
defaults:
19+
run:
20+
working-directory: ./slides
21+
22+
steps:
23+
- name: Checkout repository
24+
uses: actions/checkout@71cf2267d89c5cb81562390fa70a37fa40b1305e # v6-beta
25+
with:
26+
persist-credentials: false
27+
28+
- name: Install pnpm
29+
uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0
30+
31+
- name: Install node
32+
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
33+
with:
34+
node-version: "lts/*"
35+
cache: "pnpm"
36+
37+
- name: Install dependencies
38+
run: pnpm install
39+
with:
40+
package_json_file: slides/package.json
41+
42+
- name: Build
43+
run: pnpm run build --base /${REPO_NAME}/
44+
env:
45+
REPO_NAME: ${{github.event.repository.name}}
46+
47+
- name: Setup Pages
48+
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0
49+
50+
- name: Upload static files as artifact
51+
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
52+
with:
53+
path: dist
54+
55+
deploy:
56+
name: Deploy
57+
needs: build
58+
environment:
59+
name: github-pages
60+
url: ${{ steps.deployment.outputs.page_url }}
61+
permissions:
62+
pages: write
63+
id-token: write
64+
runs-on: ubuntu-24.04
65+
66+
steps:
67+
- name: Deploy to GitHub Pages
68+
id: deployment
69+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5

0 commit comments

Comments
 (0)