aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-07-22 14:58:26 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-07-22 14:59:09 +0300
commitc234f221f9be698bc0501c60459e1ae8e67df6c3 (patch)
tree944b4dec10fada8d93456dc5a85e6bfdb36a8b8b /.github/workflows
parentef85fa0c7ebb48bb59fe7593af5a67f3e02ff3d4 (diff)
feat(docs): publish versioned release documentation
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/preview.yml14
-rw-r--r--.github/workflows/release.yml25
-rw-r--r--.github/workflows/website.yml47
3 files changed, 82 insertions, 4 deletions
diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml
index fabb2edc..370028fe 100644
--- a/.github/workflows/preview.yml
+++ b/.github/workflows/preview.yml
@@ -368,7 +368,19 @@ jobs:
git config user.email "285672167+kangal-bot@users.noreply.github.com"
git add website/preview.json
git diff --cached --quiet || git commit -m "docs: update preview manifest"
- git push "https://x-access-token:${KANGAL_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" HEAD:master
+ remote="https://x-access-token:${KANGAL_GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
+ for attempt in 1 2 3; do
+ git pull --rebase "$remote" master
+ if git push "$remote" HEAD:master; then
+ exit 0
+ fi
+ if [ "$attempt" -lt 3 ]; then
+ echo "master changed during preview publishing; retrying ($attempt/3)"
+ sleep $((attempt * 2))
+ fi
+ done
+ echo "failed to publish preview manifest after 3 attempts" >&2
+ exit 1
- name: Mark preview-released issues
continue-on-error: true
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2d07a8f8..024998d2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -342,11 +342,17 @@ jobs:
fetch-depth: 0
ssh-key: ${{ secrets.RELEASE_DEPLOY_KEY }}
- - name: Update website latest manifest
+ - name: Install Bun
+ uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
+ with:
+ bun-version: 1.3.14
+
+ - name: Publish tagged documentation and update website manifest
env:
GH_TOKEN: ${{ github.token }}
run: |
VERSION="${GITHUB_REF_NAME#v}"
+ node website/scripts/docs-versions.mjs publish "$GITHUB_REF_NAME"
ANNOUNCEMENT_PATH="$RUNNER_TEMP/product-announcement.json"
ANNOUNCEMENT_ORIGINAL_PATH="$RUNNER_TEMP/product-announcement-original.json"
git show "${GITHUB_REF_NAME}:docs/next/product-announcement.json" > "$ANNOUNCEMENT_PATH"
@@ -371,9 +377,22 @@ jobs:
VERSION="${GITHUB_REF_NAME#v}"
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- git add website/latest.json docs/next/product-announcement.json
+ git add README.md docs/versions website/latest.json website/src/content/docs website/src/data/config-reference.json docs/next/product-announcement.json
git diff --cached --quiet || git commit -m "docs: update website manifest for v$VERSION"
- git push origin master
+ for attempt in 1 2 3; do
+ git pull --rebase origin master
+ node website/scripts/docs-versions.mjs check
+ (cd website && bun install --frozen-lockfile && bun run build)
+ if git push origin master; then
+ exit 0
+ fi
+ if [ "$attempt" -lt 3 ]; then
+ echo "master changed during release publishing; retrying ($attempt/3)"
+ sleep $((attempt * 2))
+ fi
+ done
+ echo "failed to publish release documentation after 3 attempts" >&2
+ exit 1
- name: Trigger website deploy
env:
diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml
new file mode 100644
index 00000000..4cc922d8
--- /dev/null
+++ b/.github/workflows/website.yml
@@ -0,0 +1,47 @@
+name: Website
+
+on:
+ pull_request:
+ paths:
+ - ".github/workflows/website.yml"
+ - "website/**"
+ - "docs/next/website/**"
+ - "docs/versions/**"
+ - "scripts/test_preview.py"
+ push:
+ branches: [master]
+ paths:
+ - ".github/workflows/website.yml"
+ - "website/**"
+ - "docs/next/website/**"
+ - "docs/versions/**"
+ - "scripts/test_preview.py"
+
+permissions:
+ contents: read
+
+concurrency:
+ group: website-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ timeout-minutes: 10
+ steps:
+ - name: Checkout
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
+ with:
+ fetch-depth: 0
+ persist-credentials: false
+
+ - name: Install Bun
+ uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
+ with:
+ bun-version: 1.3.14
+
+ - name: Validate version snapshots
+ run: node website/scripts/docs-versions.mjs check
+
+ - name: Build website
+ run: cd website && bun install --frozen-lockfile && bun run build