-
Notifications
You must be signed in to change notification settings - Fork 57
Create release branches as part of the release workflow #3817
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
Conversation
Deploying matrix-authentication-service-docs with
|
Latest commit: |
381266a
|
Status: | ✅ Deploy successful! |
Preview URL: | https://9549d97e.matrix-authentication-service-docs.pages.dev |
Branch Preview URL: | https://quenting-release-branches.matrix-authentication-service-docs.pages.dev |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good.
Just a perfectionist point (though maybe there's a worthwhile speedup in there).
Maybe also: would it be worth having a dev doc page on how to build a release, even just bullet points of 'go and run X workflow, then merge the PR, then do this...'?
- name: Install Rust toolchain | ||
run: | | ||
rustup toolchain install stable | ||
rustup default stable |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this is idiomatic for GHA but it feels suboptimal that we have to install Rust imperatively/slowly, particularly for just ... running cargo metadata
.
When I used to self-host Drone/Woodpecker CI, this would have been done by running the command on a Rust container image that already had it installed.
Separately but also along the same lines: how intensive is cargo metadata
— does it need to fetch all dependency crates? That would seem suboptimal just for reading a version.
Maybe there's a TOML version of jq
that we could use to just pull it out of mas-cli/Cargo.toml
? :-), or some toml2json | jq
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's fair, although the current release process took about 30s, including the rustup install, so I'm not too concerned about this slowing down the release :)
|
||
- name: Extract the current version | ||
id: current | ||
run: echo "version=$(cargo metadata --format-version 1 | jq -r '.packages[] | select(.name == "mas-cli") | .version')" >> "$GITHUB_OUTPUT" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(ditto)
fb6db37
to
381266a
Compare
The intended workflow is as follows:
release-branch.yaml
:release/vX.Y
branchvX.Y
branch in Localazy. Upload and download actions were adapted to use that branchrelease-bump.yaml
bumps a version on a release branchRC
set it will do a new RCMerge back
set, it will open a PRrelease/vX.Y
->main
build.yaml
workflowOne flaw of this workflow, is that the docker
latest
tag is updated every time we publish a 'stable' release, so if we decide to bump on an older release branch, it will set that as the latest release tagFor future reference if we want to fix that