Adopts [`gmeligio/gx`](https://github.com/gmeligio/gx) (0.7.1) as the source of truth for GitHub Actions versions in this repo: --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.9 KiB
Contributing
Editing GitHub Actions workflows
GitHub Actions versions are tracked with gx. The manifest at .github/gx.toml is the source of truth for version constraints, and .github/gx.lock records the resolved SHAs. Workflows must use SHA pins with a # vX.Y.Z comment.
When editing any file under .github/workflows/ or .github/actions/:
- Install
gxlocally:brew install gmeligio/tap/gx,cargo install gx, or grab a binary from the GitHub Releases page. - Make your workflow edits.
- Run
gx tidyto sync.github/gx.toml,.github/gx.lock, and the workflowuses:lines. - Commit all three together (
.github/workflows/...,.github/gx.toml,.github/gx.lock).
Adding a new action looks like adding a single line under [actions] in .github/gx.toml:
"some-org/some-action" = "^1"
…then gx tidy resolves the SHA, writes the lock entry, and rewrites the uses: line.
The lint job in .github/workflows/gx.yml fails any pull request that introduces an unpinned uses: reference or a lock that disagrees with the workflows. The sibling tidy job runs gx tidy and pushes a fixup commit on PRs from this repository if the lock is stale (forks must run gx tidy locally).
Adding new Github Actions
When adding new Github Actions the .github\renovate.json needs to be checked and add the new action to:
- the automerge array if it's not an important action
Dockerfile stages
flutterstage hast only the dependencies required to install flutter and common tools used by flutter internal commands, likegit.fastlanestage has the dependencies required to install fastlane but doesn't install fastlane.androidstage has the dependencies required to install the Android SDK and to develop Flutter apps for Android.