From 691826b63365c5ed4e621c2df571ea7f83f69097 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Tue, 6 Oct 2026 20:01:56 +0100 Subject: [PATCH] fix(ci): give the casket-ssg Pages build room for a cold cabal build Every `build` run of casket-pages.yml in the last 100 has failed: 74 cancelled, 20 failure, 6 startup_failure. The current failure mode is "Build casket-ssg" being cancelled at the job's 15-minute limit. On 2026-10-01 (run 36916760419) the step started at 19:55:14 and was cancelled at 20:08:24. The last run in which `cabal build` finished (26728514663, 2026-06-01) took 21m51s for that step, plus about 2 min for GHCup setup. actions/cache saves ~/.cabal and dist-newstyle only after the job succeeds, so the cache was never written and each run restarted cold. The limit made the job impossible to pass. Raise the build job's timeout-minutes to 40. That covers one cold build with headroom. After the first completed run the cache is warm and the step takes seconds (burble's identical workflow: 3 s). The deploy job keeps its 15-minute limit. No `uses:` changed, so actions.lock is unaffected. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm --- .github/workflows/casket-pages.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/casket-pages.yml b/.github/workflows/casket-pages.yml index 1bed024..33cfa1f 100644 --- a/.github/workflows/casket-pages.yml +++ b/.github/workflows/casket-pages.yml @@ -21,7 +21,12 @@ concurrency: jobs: build: runs-on: ubuntu-latest - timeout-minutes: 15 + # A cold `cabal build` of casket-ssg took 21m51s on ubuntu-latest (run + # 26728514663), and GHCup setup adds about 2 min. With a 15-minute limit + # the build was always cancelled. Its Cabal cache is saved only when the + # job succeeds, so the cache was never written and every run started cold. + # Once one run completes, the warm build takes seconds. + timeout-minutes: 40 steps: - name: Checkout uses: actions/checkout@v6.0.2