Skip to content

Commit 86f79e6

Browse files
committed
ci: enhance release workflow with release and pages deployment steps
1 parent 510f915 commit 86f79e6

1 file changed

Lines changed: 43 additions & 15 deletions

File tree

.github/workflows/release.yml

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,58 @@ on:
77

88
permissions:
99
contents: write # create release & upload assets
10+
pages: write # deploy pages
1011
id-token: write # needed for provenance
1112
attestations: write # needed for provenance
1213

1314
jobs:
14-
build-and-release:
15+
build:
1516
runs-on: ubuntu-latest
1617
steps:
17-
- name: Checkout
18-
uses: actions/checkout@v4
19-
with:
20-
fetch-depth: 0
21-
22-
- name: Setup Bun
23-
uses: oven-sh/setup-bun@v2
18+
- uses: actions/checkout@v5
19+
- uses: oven-sh/setup-bun@v2
20+
- uses: actions/configure-pages@v5
2421

2522
- name: Install deps
26-
run: bun install
23+
run: bun install --frozen-lockfile
2724

28-
- name: Build single-file HTML
25+
- name: Build
2926
run: |
3027
bun build-dist
31-
# Ensure output is at dist/index.html
3228
test -f dist/index.html
3329
34-
- name: Embed version (optional)
30+
- name: Embed version
3531
run: |
36-
ver="${GITHUB_REF_NAME}" # e.g. v1.2.0
32+
ver="${GITHUB_REF_NAME}"
3733
printf '\n<!-- version: %s commit: %s -->\n' "$ver" "$GITHUB_SHA" >> dist/index.html
3834
3935
- name: Generate checksum
4036
run: |
4137
cd dist
4238
sha256sum index.html | tee index.sha256
4339
40+
- name: Upload job artifact
41+
uses: actions/upload-artifact@v4
42+
with:
43+
name: site-dist
44+
path: dist
45+
if-no-files-found: error
46+
47+
- name: Upload Pages artifact
48+
uses: actions/upload-pages-artifact@v4
49+
with:
50+
path: dist
51+
52+
release:
53+
needs: build
54+
runs-on: ubuntu-latest
55+
steps:
56+
- name: Download build artifact
57+
uses: actions/download-artifact@v5
58+
with:
59+
name: site-dist
60+
path: dist
61+
4462
- name: Create GitHub Release
4563
id: create_release
4664
uses: softprops/action-gh-release@v2
@@ -54,7 +72,17 @@ jobs:
5472
dist/index.html
5573
dist/index.sha256
5674
57-
- name: Attest build provenance (SLSA/GH provenance)
58-
uses: actions/attest-build-provenance@v1
75+
- name: Attest build provenance
76+
uses: actions/attest-build-provenance@v3
5977
with:
6078
subject-path: "dist/index.html"
79+
80+
deploy_pages:
81+
needs: build
82+
runs-on: ubuntu-latest
83+
environment:
84+
name: github-pages
85+
url: ${{ steps.deployment.outputs.page_url }}
86+
steps:
87+
- id: deployment
88+
uses: actions/deploy-pages@v4

0 commit comments

Comments
 (0)