Release 0.17.0: Automatic working directory management and comprehensive testing
This release adds automatic working directory management for child pipelines, comprehensive module test coverage, improved module configurations, and important bug fixes.
Key Features
Automatic Working Directory Management
-
New
workingDirectoryoption for gitlab.ci configuration - Automatically set via
GITLAB_CI_WORKING_DIRenvironment variable for child pipelines - Adds
before_script: cd <workingDirectory>to all jobs in child pipelines -
Test flakes can now use relative paths (
.) instead of full repo paths - Eliminates common errors from forgetting to update paths in test configurations
Comprehensive Test Coverage
-
✅ New module tests: canaries, omnix, and cachix -
✅ Positive validator tests: accepts-valid-inputs, accepts-current-lock, accepts-valid-flake -
✅ All test configurations simplified using defaultflake.flakes -
✅ Tests automatically useworkingDirectoryfeature for path handling
Module Improvements
flake-strict-inputs
- Add default exceptions for common flake-parts ecosystem dependencies:
github:hercules-ci/flake-partsgithub:vic/import-treegithub:numtide/treefmt-nix
- No longer need manual exceptions in most test flakes
expect-failure
- Fix job extension to properly merge verify jobs
- All jobs get
allow_failure,after_script, andartifacts - Supports composable expect-failure (expect-failure of expect-failure)
- Remove backticks from job names to fix needs dependencies
remote/gitlab-ci.yml
- Update to consistent naming convention:
-
generate-flake-ci→generate:flake-ci -
flake-ci→build:flake-ci
-
Documentation
- Comprehensive documentation for all modules
- New documentation for: systems, expect-failure, child-pipeline
- Updated stage ordering and job naming conventions
- Library functions documented:
findFlakes,mkValidatorModule
Bug Fixes
- Fix formatting issues in child-pipeline.nix
- Fix expect-failure module to properly extend all jobs
- Fix needs dependencies by removing backticks from job names
- All formatting checks now pass
See ChangeLog.md for complete details.