Skip to content

docs(release-notes): add release notes for v0.1.0-beta.59 through v0.… #57

docs(release-notes): add release notes for v0.1.0-beta.59 through v0.…

docs(release-notes): add release notes for v0.1.0-beta.59 through v0.… #57

name: Docs Deploy gh-pages
on:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: docs-deploy-gh-pages
cancel-in-progress: false
permissions:
contents: read
env:
NODE_VERSION: "22.12.0"
NODE_ENV: production
DOCS_GH_PAGES_PAYLOAD_DIR: .deploy/gh-pages
jobs:
build:
name: Prepare validated publication payload
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout current source ref
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install dependencies
run: npm ci
- name: Build and verify docs
run: npm run build:ci
env:
CLARITY_PROJECT_ID: ${{ secrets.CLARITY_PROJECT_ID }}
- name: Assemble gh-pages publication payload
run: |
rm -rf "${DOCS_GH_PAGES_PAYLOAD_DIR}"
mkdir -p "${DOCS_GH_PAGES_PAYLOAD_DIR}/dist"
cp .github/gh-pages/esa.jsonc "${DOCS_GH_PAGES_PAYLOAD_DIR}/esa.jsonc"
cp .github/gh-pages/wrangler.jsonc "${DOCS_GH_PAGES_PAYLOAD_DIR}/wrangler.jsonc"
cp -R dist/. "${DOCS_GH_PAGES_PAYLOAD_DIR}/dist/"
- name: Upload validated gh-pages payload
uses: actions/upload-artifact@v4
with:
name: docs-gh-pages-payload
path: ${{ env.DOCS_GH_PAGES_PAYLOAD_DIR }}
if-no-files-found: error
deploy:
name: Publish validated snapshot to gh-pages
runs-on: ubuntu-latest
needs: build
permissions:
contents: write
environment:
name: docs-production
url: https://docs.hagicode.com
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Download validated gh-pages payload
uses: actions/download-artifact@v4
with:
name: docs-gh-pages-payload
path: .deploy/gh-pages
- name: Publish validated gh-pages payload
id: publish-gh-pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./.deploy/gh-pages
force_orphan: true
enable_jekyll: false
- name: Warm deployment domains
id: warmup
run: node ./scripts/warm-deployment-domains.mjs --summary-markdown ./.deploy/docs-warmup-summary.md
- name: Summarize deployment output
if: always()
env:
PUBLISH_OUTCOME: ${{ steps.publish-gh-pages.outcome }}
WARMUP_OUTCOME: ${{ steps.warmup.outcome }}
WARMUP_SUMMARY_MARKDOWN: ./.deploy/docs-warmup-summary.md
run: |
echo "## Publication status" >> "$GITHUB_STEP_SUMMARY"
echo "- Publication source: validated build artifact" >> "$GITHUB_STEP_SUMMARY"
echo "- \`gh-pages\` publication: ${PUBLISH_OUTCOME}" >> "$GITHUB_STEP_SUMMARY"
echo "- Published payload: branch-root \`esa.jsonc\`, \`wrangler.jsonc\`, plus \`dist/\`" >> "$GITHUB_STEP_SUMMARY"
echo "- GitHub environment: docs-production" >> "$GITHUB_STEP_SUMMARY"
echo "- Expected public URL: https://docs.hagicode.com" >> "$GITHUB_STEP_SUMMARY"
echo "- Post-publication warmup: ${WARMUP_OUTCOME}" >> "$GITHUB_STEP_SUMMARY"
if [ -f "$WARMUP_SUMMARY_MARKDOWN" ]; then
echo "" >> "$GITHUB_STEP_SUMMARY"
cat "$WARMUP_SUMMARY_MARKDOWN" >> "$GITHUB_STEP_SUMMARY"
elif [ "$PUBLISH_OUTCOME" = "success" ]; then
echo "" >> "$GITHUB_STEP_SUMMARY"
echo "## Deployment domain warmup" >> "$GITHUB_STEP_SUMMARY"
echo "- Warmup summary file was not created." >> "$GITHUB_STEP_SUMMARY"
fi
if [ "$PUBLISH_OUTCOME" = "success" ] && [ "$WARMUP_OUTCOME" = "failure" ]; then
echo "- Publication note: gh-pages snapshot was already published before warmup verification failed." >> "$GITHUB_STEP_SUMMARY"
fi
if [ "$PUBLISH_OUTCOME" = "success" ]; then
echo "Published the validated gh-pages payload with ./esa.jsonc, ./wrangler.jsonc, and ./dist/."
else
echo "Validated gh-pages publication did not complete successfully."
fi