Skip to content

Commit 491c38e

Browse files
indradhanushclaude
andcommitted
ci: add GitHub Pages deployment workflow
Automate site deployment on pushes to main. Workflow compiles TypeScript, runs tests as a gate, and assembles the published site from index.html, dist/, and trips.js.example (copied as trips.js). This ensures the published page serves only example data; real travel data never leaves the local machine. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent aa1a5ec commit 491c38e

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

.github/workflows/pages.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: pages
15+
cancel-in-progress: true
16+
17+
jobs:
18+
deploy:
19+
runs-on: ubuntu-latest
20+
environment:
21+
name: github-pages
22+
url: ${{ steps.deployment.outputs.page_url }}
23+
steps:
24+
- uses: actions/checkout@v4
25+
26+
- uses: actions/setup-node@v4
27+
with:
28+
node-version: 20
29+
30+
- name: Build
31+
run: npx --yes -p typescript@5 tsc -p .
32+
33+
- name: Test
34+
run: node --test test/
35+
36+
# The published page serves the example data; real trips.js never
37+
# leaves the local machine.
38+
- name: Assemble site
39+
run: |
40+
mkdir _site
41+
cp index.html _site/
42+
cp -R dist _site/dist
43+
cp trips.js.example _site/trips.js
44+
45+
- uses: actions/configure-pages@v5
46+
47+
- uses: actions/upload-pages-artifact@v3
48+
with:
49+
path: _site
50+
51+
- id: deployment
52+
uses: actions/deploy-pages@v4

0 commit comments

Comments
 (0)