From b2b9b0562e6069d018faef42b9d07f4c07bf8065 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Sun, 31 May 2026 10:40:36 +0000 Subject: [PATCH] ci(docs): restore Documentation workflow on GitHub Actions (CPU runner) Docs CI was removed from GHA in #99 (2024-07) and #130 to restore it was closed unmerged, so `main` has had no documentation workflow. As a result `stable` is frozen at v1.2.1 (2022): no v2.x release ever deployed docs. The v2.x tag builds that did run used a self-hosted GPU runner and segfaulted (exit 139) during `docs/make.jl` ExpandTemplates, crashing before `deploydocs`. Every executed `@example` block uses `use_cuda = false` (the `use_cuda = true` snippets are static, non-executed fences), so the build needs no GPU. Running on `ubuntu-latest` avoids the segfault and deploys correctly. DOCUMENTER_KEY + deploy key are already configured on the repo. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/Documentation.yml | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/Documentation.yml diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml new file mode 100644 index 0000000..08e1a24 --- /dev/null +++ b/.github/workflows/Documentation.yml @@ -0,0 +1,40 @@ +name: Documentation + +on: + push: + branches: + - main + tags: ['*'] + pull_request: + workflow_dispatch: + +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: only if it is a pull request build. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +jobs: + build: + # Runs on a GitHub-hosted CPU runner (not the self-hosted GPU box). + # All executed `@example` blocks use `use_cuda = false`, so no GPU is + # required; the previous GPU-runner build segfaulted (exit 139) during + # example evaluation, which blocked every v2.x docs deploy. + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: '1' + - uses: julia-actions/cache@v2 + - name: Install dependencies + shell: julia --color=yes --project=docs/ {0} + run: | + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate() + - name: Build and deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key + run: julia --color=yes --project=docs/ docs/make.jl