From 7d7dbe5354b64c6c567a02aaaf1d626f55f782b7 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 5 Feb 2026 13:58:19 -0600 Subject: [PATCH] test --- .github/workflows/deploy-pages.yml | 74 ++++++++++++++++++++++++++++++ .github/workflows/release.yml | 41 +++++++++++++++-- 2 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/deploy-pages.yml diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml new file mode 100644 index 0000000..585430c --- /dev/null +++ b/.github/workflows/deploy-pages.yml @@ -0,0 +1,74 @@ +name: Release - Build and publish docs + +on: + push: + tags: ["v*"] + workflow_dispatch: + +permissions: + contents: write + +jobs: + release: + 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: CI gate build (strict) + env: + MKDOCS_STRICT: ${{ vars.MKDOCS_STRICT }} + run: | + set -euo pipefail + export MKDOCS_STRICT="${MKDOCS_STRICT:-true}" + tools/mkdocs_build.sh --config mkdocs/mkdocs.yml + + - name: Package site (non-strict) + run: | + set -euo pipefail + export MKDOCS_STRICT="false" + scripts/package_site.sh "${GITHUB_REF_NAME}" --config mkdocs/mkdocs.yml --dist "${RUNNER_TEMP}/dist" + + - name: Publish release (GitHub) + uses: softprops/action-gh-release@v2 + with: + name: ${{ github.ref_name }} + tag_name: ${{ github.ref_name }} + files: | + ${{ runner.temp }}/dist/${{ github.ref_name }}.zip + + - name: Remove RC preview from gh-pages (optional cleanup) + 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 + echo "No gh-pages branch; nothing to clean." + exit 0 + fi + + if [ -d rc ]; then + rm -rf rc + git add -A + git config user.name "actions-bot" + git config user.email "actions-bot@users.noreply.github.com" + git commit -m "Remove RC preview after release ${GITHUB_REF_NAME}" || echo "No changes to commit" + git push origin gh-pages + else + echo "No rc/ directory present; nothing to delete." + fi \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e8f2993..55420e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,7 +65,7 @@ jobs: # RC-only step # ------------------------- - name: Publish prerelease - if: startsWith(github.ref_name, 'rc-') + if: startsWith(github.ref_name, 'rc') uses: softprops/action-gh-release@v2 with: prerelease: true @@ -91,7 +91,42 @@ jobs: runs-on: ubuntu-latest needs: build steps: - - name: Deploy + - name: Checkout gh-pages branch run: | - echo "TBD :)" + 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 release + run: | + set -euo pipefail + rm ./* ./.* || true + cp -a "${MKDOCS_OUTPUT_DIR}/dist/." "" + + 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 release ${GITHUB_REF_NAME}" || echo "No changes to commit" + git push origin gh-pages + + - name: Publish RC preview under /rc// + run: | + set -euo pipefail + rm -rf "rc"* || true + mkdir -p "rc/" + cp -a "${MKDOCS_OUTPUT_DIR}/dist/." "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 \ No newline at end of file