name: Deploy RC preview to GitHub Pages on: push: tags: ["rc*"] workflow_dispatch: permissions: contents: write jobs: deploy-rc-pages: runs-on: ubuntu-latest steps: - name: Checkout (tag) uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install dependencies run: | set -euo pipefail pip install -r mkdocs/requirements.txt - name: Build site (strict default) run: | set -euo pipefail export MKDOCS_STRICT="${MKDOCS_STRICT:-true}" export TMPDIR="${RUNNER_TEMP:-$TMPDIR}" export OUTPUT_DIR="${OUTPUT_DIR:-${TMPDIR}/dist/}" tools/build.sh --config mkdocs/mkdocs.yml - name: Checkout gh-pages branch run: | set -euo pipefail git fetch origin gh-pages:gh-pages || true if git show-ref --verify --quiet refs/heads/gh-pages; then git switch gh-pages else git switch --orphan gh-pages rm -rf ./* git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git commit --allow-empty -m "Initialize gh-pages" fi - name: Publish RC preview under /rc// run: | export TMPDIR="${RUNNER_TEMP:-$TMPDIR}" export OUTPUT_DIR="${OUTPUT_DIR:-${TMPDIR}/dist/}" set -euo pipefail rm -rf "rc"* || true mkdir -p "rc/" cp -a "$OUTPUT_DIR/." "rc/" git add -A git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git commit -m "Deploy RC preview ${GITHUB_REF_NAME}" || echo "No changes to commit" git push origin gh-pages - name: Publish prerelease (GitHub) uses: softprops/action-gh-release@v2 with: prerelease: true body: | RC preview: https://.github.io//rc/ Tag: ${{ github.ref_name }} Commit: ${{ github.sha }}