-
Notifications
You must be signed in to change notification settings - Fork 10
Implement Conan lockfiles in CI/CD workflows for reproducible builds with workflow-specific auto-commit #47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ilds Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
|
@copilot continue with my request to make sure that on a push (or merge) the conan lock file is created |
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
Done! Added automatic commit of lockfiles on push/merge to main/master branches across all 9 workflows. The lockfiles will now be:
Commit: b85b4ba |
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
|
@copilot only do the auto commit on package creation when merged to another branch. Or when a release tag is created. |
…hes/tags only Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
Updated! The conan-package.yml workflow now only commits lockfiles on:
Other workflows (unit-test, benchmark, etc.) still commit on main/master as they're for regular development. This prevents excessive lockfile commits on main while ensuring release branches and tags have committed lockfiles. Commit: f724342 |
Co-authored-by: jellespijker <8535734+jellespijker@users.noreply.github.com>
All CI/CD workflows now generate and use Conan lockfiles to ensure reproducible builds by pinning exact dependency versions and revisions across all environments. Lockfiles are automatically committed back to the repository with workflow-specific conditions.
Changes
9 workflow files updated: Added
--lockfile-out=conan.lockto allconan install,conan create, andconan buildcommandsbenchmark.yml,conan-package.yml,lint-tidier.yml,npm-package.yml,unit-test.yml,update-translation.ymlcura-installer-{linux,macos,windows}.ymlWorkflow-specific auto-commit logic: Added
stefanzweifer/git-auto-commit-action@v5with different conditions per workflow type:conan-package.yml): Commit lockfiles on push to release branches/tags only (NOT main/master)README documentation: Added comprehensive lockfile section covering:
conan.lockloading behavior in Conan 2.xcontents: writefor calling workflows)conan lock add,--lockfile-partialmode)Auto-Commit Logic
Package Creation (conan-package.yml)
Commits on release branches and tags, preventing frequent commits on main/master.
Other Workflows
Commits on main/master for regular development workflows.
Example
How It Works
conan.lockif present (no--lockfileflag needed)Each repository using these workflows will automatically maintain up-to-date lockfiles in version control for full reproducibility. Repositories can override lockfile behavior via
conan_extra_argsworkflow input (e.g.,--lockfile-partialfor development branches).Note: Calling workflows must have
contents: writepermission for auto-commit functionality.Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.