diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index a0e8e40..9cd826c 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -6,9 +6,6 @@ on: - main - development - release-candidate - tags-ignore: # Don't need to run on tag pushes. - - "v*" - - "rc*" workflow_dispatch: permissions: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..839acfe --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,93 @@ +name: Build & publish docs (rc + release) + +on: + push: + tags: + - "rc-*" + - "v*" + workflow_dispatch: + +permissions: + contents: read + +env: + MKDOCS_CONFIG: mkdocs/mkdocs.yml + MKDOCS_OUTPUT_DIR: ${{ runner.temp }}/dist + MKDOCS_STRICT: ${{ vars.MKDOCS_STRICT || 'true' }} + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install deps + run: | + set -euo pipefail + pip install -r mkdocs/requirements.txt + + - name: Build docs (strict gate) + run: | + set -euo pipefail + + FLAGS=() + if [ "${MKDOCS_STRICT}" = "true" ]; then + FLAGS+=(--strict) + fi + + mkdir -p "${MKDOCS_OUTPUT_DIR}" + + OFFLINE="${OFFLINE}" mkdocs build \ + "${FLAGS[@]}" \ + -f "${MKDOCS_CONFIG}" \ + -d "${MKDOCS_OUTPUT_DIR}" + + - name: Zip site + run: | + set -euo pipefail + cd "${MKDOCS_OUTPUT_DIR}" + zip -r "${GITHUB_REF_NAME}.zip" . + release: + runs-on: ubuntu-latest + needs: build + steps: + # ------------------------- + # RC-only step + # ------------------------- + - name: Publish prerelease + if: startsWith(github.ref_name, 'rc-') + uses: softprops/action-gh-release@v2 + with: + prerelease: true + name: ${{ github.ref_name }} + tag_name: ${{ github.ref_name }} + body: | + Release candidate preview (if deployed): /rc/ + files: | + ${{ runner.temp }}/${{ github.ref_name }}.zip + + # ------------------------- + # Final release-only step + # ------------------------- + - name: Publish release + if: startsWith(github.ref_name, 'v') + uses: softprops/action-gh-release@v2 + with: + name: ${{ github.ref_name }} + tag_name: ${{ github.ref_name }} + files: | + ${{ runner.temp }}/${{ github.ref_name }}.zip + deploy: + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy + run: | + echo "TBD :)" + \ No newline at end of file