Build Packages / Create release (push) Successful in 24s
Build Packages / build:portable:macos-arm64:nocuda (push) Successful in 3m18s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m41s
Build Packages / build:portable:windows-x86_64:nocuda (push) Successful in 13m17s
Build Packages / build:portable:windows-x86_64:cuda (push) Successful in 23m15s
Build Packages / build:portable:linux-x86_64:nocuda (push) Successful in 13m30s
Build Packages / build:rugnux:linux-aarch64:cuda (push) Successful in 5m43s
Build Packages / build:portable:linux-x86_64:cuda (push) Successful in 14m27s
Build Packages / build:jfjoch:rocky8:nocuda (push) Successful in 17m7s
Build Packages / build:jfjoch:ubuntu2204:nocuda (push) Successful in 15m27s
Build Packages / build:jfjoch:rocky9:nocuda (push) Successful in 19m18s
Build Packages / build:jfjoch:ubuntu2404:nocuda (push) Successful in 19m38s
Build Packages / build:jfjoch:rocky8:cuda-sls9 (push) Successful in 22m7s
Build Packages / Generate python client (push) Successful in 23s
Build Packages / Build documentation (push) Successful in 1m0s
Build Packages / build:jfjoch:rocky9:cuda-sls9 (push) Successful in 23m4s
Build Packages / build:jfjoch:ubuntu2204:cuda (push) Successful in 15m25s
Build Packages / build:jfjoch:rocky8:cuda (push) Successful in 20m43s
Build Packages / build:jfjoch:rocky9:cuda (push) Successful in 21m25s
Build Packages / build:jfjoch:ubuntu2404:cuda (push) Successful in 17m1s
Build Packages / Unit tests (push) Successful in 1h56m34s
Build Packages / Validation Battery (push) Successful in 31m53s
The unit-test job had joined the battery workflow's concurrency group to keep the two off the GPU at
the same time. A group keeps one pending run or job and cancels it for a newer one, cancel-in-progress
or not, so the battery waiting for its runner was cancelled by the same push's unit-test job, on
every push since 140739a69.
The battery is now a job in build_and_test.yml that needs the unit tests and runs whatever their
outcome, so within one run the two take turns; no concurrency group, so a merge to main always gets
both, and a manual release (create_release) runs neither. A manual subset or the full battery is a
Run workflow with battery_subset (empty = full). Two pushes close together can still overlap on the
GPU; a runner with capacity 1 for the GPU jobs is the later fix.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>