Unify CI to use lockfile-based env#634
Merged
Merged
Conversation
Add a nightly-only CI mode that installs from committed explicit lockfiles on cache misses while keeping pull-request jobs on the existing environment.yml flow. Switch nightly cache keys from date-based values to lockfile-hash keys for stable reuse and deterministic invalidation. Add lockfile generation tooling with a pinned conda-lock version and Makefile targets to regenerate and verify the full OS/Python lock matrix. Remove the top-level environment name from environment.yml and add non-blocking Linux and macOS nightly drift-rebuild checks to surface solver drift without failing nightly status.
This is a temporary addition to allow testing of the new CI configuration.
Update nightly conda cache keys with a pip dependency version suffix so cache entries are invalidated when those pip requirements change. Install cobaya, isitgr, and pygobject-stubs in the lockfile-based environment setup so nightly jobs consistently include required packages for linting, matrix runs, and external dependencies. No new tests were added because this change only updates CI environment
Added a new section explaining the nightly workflow's use of lockfile-based environments and rebuild-drift advisory jobs. This documents how conda solve caching works in nightly mode and how drift detection jobs diagnose environment resolution issues. Also updated the CI System Architecture link reference to point to CONTRIBUTING_ADVANCED.md, where this documentation now resides.
Consolidated nightly and pull request CI modes to always use lockfile-based environment creation with lock-hash cache keys. This eliminates separate date-based caching logic for PR mode and simplifies conditional branching throughout the reusable workflow. Added a new non-blocking rebuild-drift canary job in pull request CI that triggers only on dependency-impacting file changes and performs a fresh environment rebuild to detect conda resolution drift without blocking merges. Added debug output throughout environment setup steps and updated CONTRIBUTING_ADVANCED.md to document the new PR drift detection behavior and clarify the unified lockfile-based approach.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #634 +/- ##
=========================================
Coverage 99.9% 100.0%
=========================================
Files 178 151 -27
Lines 13272 9057 -4215
Branches 1576 1035 -541
=========================================
- Hits 13269 9057 -4212
+ Misses 2 0 -2
+ Partials 1 0 -1 🚀 New features to boost your workflow:
|
vitenti
approved these changes
Apr 30, 2026
This adjusts the build so that it tests the `master` branch when merged into `master`.
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.
Description
The current CI system encounters too-frequent failures in which the
conda solver takes too long to solve an environment. This PR moves
to the use of developer-generated lockfiles that present the build
with a stable environment.
It also includes additional diagnostic jobs intended to identify when
the lockfiles should be updated. A failure of one of these jobs does
not cause a failure of the CI pipeline. It merely indicates that the
developers should consider updating the lockfiles.
Type of change
Bug fix (non-breaking change which fixes an issue)
Checklist:
The following checklist will make sure that you are following the code style and
guidelines of the project as described in the
contributing page.
bash pre-commit-checkand fixed any issues