Skip to content

chore(ci): lock workflow action dependencies with actions.lock - #425

Open
Sébastien Duquette (sduquette-devolutions) wants to merge 1 commit into
masterfrom
chore/workflow-dependency-lockfile
Open

Sébastien Duquette (sduquette-devolutions) wants to merge 1 commit into
masterfrom
chore/workflow-dependency-lockfile

Conversation

@sduquette-devolutions

@sduquette-devolutions Sébastien Duquette (sduquette-devolutions) commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Onboards all workflows to GitHub Actions workflow dependency lockfiles, generated with gh actions-lock --migrate-local-actions.

  • Adds .github/workflows/actions.lock, pinning each action (and transitive dependency) to a commit SHA with repo/owner IDs.
  • Narrows uses: refs to full versions (e.g. actions/checkout@v6 -> @v6.1.0).
  • Migrates same-repo ./.github/workflows/... local actions to $/... so they are locked (details).
  • Adds the github-actions Dependabot ecosystem so version updates also regenerate the lockfile entry.

Notes

  • 5 local actions (toolbox-install, cyclonedx-rust-generate, dtrack-upload-sbom, and the generated pypi docker action) are not in this repo and stay as ./ refs; the tool only warns about them.
  • Do not edit the lockfile by hand; re-run gh actions-lock after changing uses: deps.

Onboard all workflows to GitHub Actions workflow dependency lockfiles
using `gh actions-lock --migrate-local-actions`.

- add .github/workflows/actions.lock pinning actions to commit SHAs
- narrow action refs to full versions (e.g. checkout@v6 -> v6.1.0)
- migrate same-repo `./` local actions to `$/` so they are locked
- enable Dependabot for github-actions to keep the lockfile current

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human validation is needed because unavailable Devolutions/actions@v1 definitions prevent confirming that nested release-workflow dependencies are pinned and compatible with lockfile enforcement.

No open issues 🎉

What changed in this PR

This PR adds dependency locking to the repository’s build, test, and release workflows, making GitHub Actions dependencies reproducible and easier to maintain.

Changes:

  • Adds actions.lock with commit SHAs and repository identities for direct and transitive action dependencies.
  • Narrows action references to full versions and migrates same-repository CI actions to $/ references.
  • Enables weekly Dependabot updates for GitHub Actions.
File Description
.github/​workflows/​tests/​python/​windows/​action.yml Specifies Python setup and artifact download versions.
.github/​workflows/​tests/​python/​macos/​action.yml Specifies Python setup and artifact download versions.
.github/​workflows/​tests/​python/​linux/​action.yml Specifies Python setup and artifact download versions.
.github/​workflows/​tests/​fuzz/​quick/​action.yml Specifies the crash-artifact upload version.
.github/​workflows/​tests/​csharp/​windows/​action.yml Specifies the NuGet artifact download version.
.github/​workflows/​tests/​csharp/​macos/​action.yml Specifies the NuGet artifact download version.
.github/​workflows/​tests/​csharp/​linux/​action.yml Specifies the native-library artifact download version.
.github/​workflows/​tests/​csharp/​ios/​action.yml Specifies the NuGet artifact download version.
.github/​workflows/​tests/​csharp/​android/​action.yml Specifies the NuGet artifact download version.
.github/​workflows/​swift/​action.yml Specifies artifact download and upload versions.
.github/​workflows/​release-others.yml Specifies checkout, authentication, Node setup, and upload versions.
.github/​workflows/​release-nugets.yml Specifies checkout and NuGet login versions.
.github/​workflows/​python/​build/​windows/​action.yml Specifies Python setup and wheel upload versions.
.github/​workflows/​python/​build/​macos/​action.yml Specifies Python setup and wheel upload versions.
.github/​workflows/​python/​build/​linux/​action.yml Specifies Python setup and wheel upload versions.
.github/​workflows/​other/​webassembly-build/​action.yml Specifies Node setup and artifact upload versions.
.github/​workflows/​other/​source-publish/​action.yml Specifies the source-artifact upload version.
.github/​workflows/​nugets/​nugets-windows/​action.yml Specifies Python setup and artifact transfer versions.
.github/​workflows/​native/​native-build-windows/​action.yml Specifies native-build artifact transfer versions.
.github/​workflows/​native/​native-build-macos/​action.yml Specifies native-build artifact transfer versions.
.github/​workflows/​native/​native-build-linux/​action.yml Specifies native-build artifact transfer versions.
.github/​workflows/​native/​native-build-ios/​action.yml Specifies native-build artifact transfer versions.
.github/​workflows/​kotlin/​kotlin-windows/​action.yml Specifies Java setup and artifact transfer versions.
.github/​workflows/​kotlin/​kotlin-macos/​action.yml Specifies artifact download and upload versions.
.github/​workflows/​kotlin/​kotlin-linux/​action.yml Specifies Java setup and artifact transfer versions.
.github/​workflows/​fuzz-extended.yml Specifies checkout, cache, and artifact upload versions.
.github/​workflows/​formatting/​rust/​action.yml Specifies the Python setup version.
.github/​workflows/​formatting/​csharp/​action.yml Specifies the configuration-artifact download version.
.github/​workflows/​ci.yml Specifies external action versions and migrates local references to $/.
.github/​workflows/​actions.lock Records workflow dependencies, commit SHAs, and repository identities.
.github/​dependabot.yml Adds weekly GitHub Actions dependency updates.

Review effort: Balanced

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants