Skip to content

Commit f9ba1dd

Browse files
committed
ci: add GitHub Actions workflow for documentation
Build, link-check, and deploy the VitePress docs site to GitHub Pages on every push to main. Requires switching Pages source to GitHub Actions after merge.
1 parent e1855ab commit f9ba1dd

3 files changed

Lines changed: 124 additions & 1 deletion

File tree

.github/workflows/codeql.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: "CodeQL"
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
pull_request:
7+
branches: ["main"]
8+
schedule:
9+
- cron: "0 0 * * 1"
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
analyze:
16+
name: Analyze
17+
runs-on: ubuntu-latest
18+
permissions:
19+
actions: read
20+
contents: read
21+
security-events: write
22+
23+
steps:
24+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
25+
with:
26+
persist-credentials: false
27+
28+
- name: Initialize CodeQL
29+
uses: github/codeql-action/init@b22c66273205240d86582638b860f9b25772b4d3 # v3
30+
with:
31+
languages: javascript
32+
33+
- name: Autobuild
34+
uses: github/codeql-action/autobuild@b22c66273205240d86582638b860f9b25772b4d3 # v3
35+
36+
- name: Perform CodeQL Analysis
37+
uses: github/codeql-action/analyze@b22c66273205240d86582638b860f9b25772b4d3 # v3

.github/workflows/docs.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Docs
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'docs/**'
8+
- '.github/workflows/docs.yml'
9+
pull_request:
10+
branches: [main]
11+
paths:
12+
- 'docs/**'
13+
- '.github/workflows/docs.yml'
14+
workflow_dispatch:
15+
16+
permissions:
17+
contents: read
18+
19+
concurrency:
20+
group: pages-${{ github.ref }}
21+
cancel-in-progress: false
22+
23+
defaults:
24+
run:
25+
working-directory: docs
26+
27+
jobs:
28+
build:
29+
runs-on: ubuntu-latest
30+
permissions:
31+
contents: read
32+
pages: write
33+
steps:
34+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
35+
with:
36+
persist-credentials: false
37+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
38+
with:
39+
node-version: '20'
40+
cache: 'npm'
41+
cache-dependency-path: docs/package-lock.json
42+
- run: npm ci
43+
- run: npm run docs:build
44+
- uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
45+
with:
46+
path: docs/.vitepress/dist
47+
48+
deploy:
49+
if: github.ref == 'refs/heads/main'
50+
needs: build
51+
runs-on: ubuntu-latest
52+
permissions:
53+
contents: read
54+
pages: write
55+
id-token: write
56+
environment:
57+
name: github-pages
58+
url: ${{ steps.deployment.outputs.page_url }}
59+
steps:
60+
- uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
61+
id: deployment
62+
63+
link-check:
64+
runs-on: ubuntu-latest
65+
steps:
66+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
67+
with:
68+
persist-credentials: false
69+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
70+
with:
71+
node-version: '20'
72+
cache: 'npm'
73+
cache-dependency-path: docs/package-lock.json
74+
- run: npm ci
75+
- run: npm run docs:build
76+
- uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2.8.0
77+
with:
78+
args: >
79+
docs/.vitepress/dist
80+
--root-dir docs/.vitepress/dist
81+
--exclude "^file://"
82+
--exclude "opencollective"
83+
--exclude "llms"
84+
--exclude "node-tap.org"
85+
--accept '200..=299,403'
86+
fail: true

docs/scripts/link-check.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ fi
1010
echo "Running lychee link check on dist folder..."
1111
lychee .vitepress/dist \
1212
--root-dir .vitepress/dist \
13-
--include-mail=false \
1413
--exclude "^file://" \
1514
--exclude "opencollective" \
1615
--exclude "llms" \
16+
--exclude "node-tap.org" \
1717
--accept '200..=299,403'

0 commit comments

Comments
 (0)