250128.1 · 39eea145b4add3e19fa7a22be80b7854a4d6c3f5
website: deploy website from GitHub Actions (#3237)
Deploying GitHub Pages from the gh-pages branch is a classic way. We can use actions/deploy-pages action to deploy GitHub Pages.
reading declarations
@@ -6,17 +6,16 @@ on: paths: - 'docs/**' concurrency: website-permissions:- contents: write jobs:- website:+ build: runs-on: ubuntu-latest+ defaults:+ run:+ working-directory: docs steps: - name: Checkout code uses: actions/checkout@v4- with:- fetch-depth: 0 - name: Setup Python uses: actions/setup-python@v5 with:@@ -26,15 +25,23 @@ jobs: run: pip install pipenv - name: Install dependencies run: pipenv sync- working-directory: docs- - name: Update website- run: scripts/update-website- - name: Commit changes- run: |- if ! git diff --quiet; then- git add --all- git config user.name 'github-actions[bot]'- git config user.email 'github-actions[bot]@users.noreply.github.com'- git commit -m 'Update website'- git push origin gh-pages- fi+ - name: Build website+ run: pipenv run python3 build_website.py+ - name: Upload pages artifact+ uses: actions/upload-pages-artifact@v3+ with:+ path: docs/output/++ deploy:+ needs: build+ permissions:+ pages: write+ id-token: write+ environment:+ name: github-pages+ url: ${{ steps.deployment.outputs.page_url }}+ runs-on: ubuntu-latest+ steps:+ - name: Deploy to GitHub Pages+ uses: actions/deploy-pages@v4+ id: deployment
scripts/update-website
@@ -1,30 +0,0 @@-#!/bin/bash--# This script builds the website from the docs directory of-# the current branch and copies it over to the gh-pages-# branch.--set -eux-shopt -s dotglob--# build website-scriptdir=$(dirname "$0")-cd "$scriptdir"/../docs-rm -rf output-mkdir output-pipenv run python3 build_website.py-cd ..--# copy to /tmp-tmpdir=$(mktemp -d -t jq.website.XXXXXXXXXX)-cp -r docs/output/* "$tmpdir"-cp .gitignore "$tmpdir"--# copy to gh-pages-git checkout gh-pages-cp -r "$tmpdir"/* .-cp "$tmpdir"/.gitignore .--# clean up-rm -rf "$tmpdir"-echo SUCCESS