You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CI: Centralize version management with single config file
Implement a centralized version management system using a single YAML
config file (.github/config/versions.yaml) as the source of truth for
all dependency versions across CI workflows. This eliminates hardcoded
version numbers and simplifies maintenance.
Implementation:
- Created .github/config/versions.yaml with Rust and OCaml versions
- Added load-versions composite action to parse config and set env vars
- Updated all workflows to use the load-versions action
- Removed hardcoded RUST_STABLE_VERSION, RUST_NIGHTLY_VERSION, and
OCAML_VERSION from workflow-level env declarations
- Simplified rust-toolchain.toml comments to reference config file
Benefits:
- Single source of truth for all dependency versions
- Automatic environment variable injection via composite action
- Reduced maintenance burden when updating versions
- Improved consistency across all CI workflows
- Clear documentation of where versions are defined
Changes to workflows:
- build-reusable.yaml: Added load-versions to all 5 jobs
- tests.yaml: Added load-versions to all test jobs
- lint.yaml: Added load-versions to lint jobs
- doc-commands.yaml: Added load-versions action
Future version updates only require changing versions.yaml.
0 commit comments