Repository navigation
Run the PETSc CI jobs on Ubuntu 24.04 and key the cache by image - #22
Merged
Merged
Conversation
A PETSc tree built on one Ubuntu release links against its libraries, and the cached libmpi.so from the old image needs libxml2 symbols that the Ubuntu 26.04 runner lacks. The cache key now holds the OS release from /etc/os-release, so a new release builds PETSc once and caches it again.
The configure scripts of PETSc 3.16.1 import xdrlib, which Python 3.13 removed, and the Ubuntu 26.04 runner has no older python3. The jobs that build PETSc now set up Python 3.12 first.
PETSc 3.16.1 with its bundled f2cblaslapack does not build on the Ubuntu 26.04 runner image. The jobs that build or use PETSc (CI, installer smoke and nightly) run on ubuntu-24.04 until the build works on the new image.
There was a problem hiding this comment.
🟢 Approval recommended
The focused workflow changes consistently align runner images, cache keys, and build-time Python, with no blocking issues identified.
No open issues 🎉
What changed in this PR
This PR keeps SPIDER’s PETSc-dependent CI jobs on Ubuntu 24.04 and prevents cached PETSc builds from being shared across OS releases.
Changes:
- Pin PETSc build, test, installer-smoke, and nightly jobs to Ubuntu 24.04.
- Include the runner’s OS release in PETSc cache keys.
- Set up Python 3.12 before PETSc source builds.
| File | Description |
|---|---|
.github/workflows/nightly.yml |
Pins the nightly runner, isolates its PETSc cache, and selects Python 3.12. |
.github/workflows/ci.yml |
Pins PETSc-dependent runners, aligns cache keys, and selects Python 3.12 for builds. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Since 26 October
ubuntu-latestruns Ubuntu 26.04, and the SPIDER CI stops before any test there. The PETSc cache saved on the old image restores alibmpi.sothat needslibxml2symbols the new image lacks, and a fresh PETSc 3.16.1 build fails on 26.04 (its configure importsxdrlib, which Python 3.13 removed, and thef2cblaslapackdownload does not configure). This keeps CI on a working image and makes the cache follow the image; the PETSc 3.16.1 build on Ubuntu 26.04 itself stays open.Changes
petsc,test,installer-smokeinci.yml,full-suiteinnightly.yml) run onubuntu-24.04.Linux-ubuntu-24.04-petsc-63b72503), so a cache from one image is never restored on another.docs.yaml,publish-test-badges.ymlandrelease-guard.ymlstay onubuntu-latest: they use neither PETSc norapt-get.Validation
Runs on the branch tip
2757fc12f2af02d17ec4acd2b63945f79dcdefd5:full-suitepasses; cache miss, then a PETSc build on Ubuntu 24.04).petsc,testandinstaller-smokepass).