Skip to content

Update CI runner images and deprecated actions#318

Merged
thomashoneyman merged 1 commit into
masterfrom
fix-ci-runner-images
Jul 3, 2026
Merged

Update CI runner images and deprecated actions#318
thomashoneyman merged 1 commit into
masterfrom
fix-ci-runner-images

Conversation

@thomashoneyman

@thomashoneyman thomashoneyman commented Jul 3, 2026

Copy link
Copy Markdown
Member

Fixes #317.

Context

CI has been dead because all jobs pinned runs-on: ubuntu-20.04, which GitHub retired in April 2025. The server is upgraded now to ubuntu-24.04 and we can update CI as well.

Changes

  • Server job: ubuntu-20.04ubuntu-24.04 (kept the sync-with-server comment)
  • Client and release jobs: → ubuntu-latest — they produce OS-independent artifacts, so the copy-pasted sync comment was removed
  • actions/checkout@v2@v4, actions/cache@v2@v4
  • actions/setup-node@v2@v4, pinned to Node 20
  • actions/upload-artifact@v2 / download-artifact@v2@v4 (v2 is fully deprecated and errors out)
  • haskell/actions/setup@v1 (archived repo) → haskell-actions/setup@v2
  • softprops/action-gh-release@v1@v2
  • stack-version: 2.5.1 (from 2020) → latest — reproducibility is unaffected since the lts-20.9 resolver pins GHC and all dependencies

Notes

  • Modern stack selects the tinfo6 GHC bindist, so GHC 9.2.5 should install fine on the 24.04 runner. If it doesn't, the fallback is running the server job in a container: ubuntu:22.04 (a binary built against older glibc runs fine on the newer droplet).
  • Artifact v4 immutability doesn't affect this workflow: two distinctly-named artifacts, downloaded by exact name.
  • Deploy-side incident fix discovered along the way: the trypurescript systemd service was never enabled at boot on the droplet (it was being started manually after reboots). It's now systemctl enabled.

🤖 Generated with Claude Code

The ubuntu-20.04 runner image was retired by GitHub in April 2025, so
all CI jobs queued forever waiting for a runner. The Try PureScript
server droplet has been upgraded in place to Ubuntu 24.04, so the
server build job now targets ubuntu-24.04 to keep the produced binary
glibc-compatible with the deployment host.

Also:
- actions/checkout v2 -> v4
- actions/cache v2 -> v4
- actions/setup-node v2 -> v4, pinned to Node 20
- actions/upload-artifact and download-artifact v2 -> v4 (v2 is fully
  deprecated and errors out)
- haskell/actions/setup v1 (archived) -> haskell-actions/setup v2
- softprops/action-gh-release v1 -> v2
- stack 2.5.1 -> latest (the lts-20.9 resolver still pins GHC and all
  dependencies)
- Only the server job carries the "must match the server's Ubuntu"
  comment; the client and release jobs produce OS-independent
  artifacts and use ubuntu-latest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@thomashoneyman thomashoneyman merged commit 6e72e2d into master Jul 3, 2026
3 checks passed
@thomashoneyman thomashoneyman deleted the fix-ci-runner-images branch July 3, 2026 20:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

GitHub Ubuntu-20.04 runner no longer supported

1 participant