forked from bevyengine/bevy
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix release workflow (bevyengine#4903)
# Objective While playing with the code, I found some problems in the recently merged version-bumping workflow: - Most importantly, now that we are using `0.8.0-dev` in development, the workflow will try to bump it to `0.9.0` 😭 - The crate filter is outdated now that we have more crates in `tools`. - We are using `[email protected]`, but according to [Github help](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#about-commit-email-addresses), that email address means "old no-reply email format for the user `bevy`". It is currently not associated with any account, but I feel this is still not appropriate here. ## Solution - Create a new workflow, `Post-release version bump`, that should be run after a release and bumps version from `0.X.0` to `0.X+1.0-dev`. Unfortunately, cargo-release doesn't have a builtin way to do this, so we need to parse and increment the version manually. - Add the new crates in `tools` to exclusion list. Also removes the dependency version specifier from `bevy_ecs_compile_fail_tests`. It is not in the workspace so the dependency version will not get automatically updated by cargo-release. - Change the author email to `41898282+github-actions[bot]@users.noreply.github.com`. According to the discussion [here](actions/checkout#13 (comment)) and [here](https://github.community/t/github-actions-bot-email-address/17204/6), this is the email address associated with the github-actions bot account. - Also add the workflows to our release checklist. See infmagic2047#5 and infmagic2047#6 for examples of release and post-release PRs.
- Loading branch information
1 parent
3d00402
commit fe735bb
Showing
4 changed files
with
74 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
name: Post-release version bump | ||
|
||
# how to trigger: https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow | ||
on: | ||
workflow_dispatch: | ||
|
||
env: | ||
CARGO_TERM_COLOR: always | ||
|
||
jobs: | ||
ci: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install cargo-release | ||
run: cargo install cargo-release | ||
|
||
- name: Setup post-release version bump | ||
run: | | ||
# Set the commit author to the github-actions bot. See discussion here for more information: | ||
# https://github.com/actions/checkout/issues/13#issuecomment-724415212 | ||
# https://github.community/t/github-actions-bot-email-address/17204/6 | ||
git config user.name 'Bevy Auto Releaser' | ||
git config user.email '41898282+github-actions[bot]@users.noreply.github.com' | ||
# Read the current version from Cargo.toml | ||
current_version=$(cargo metadata --format-version 1 --no-deps | \ | ||
jq --raw-output '.packages | .[] | select(.name == "bevy").version') | ||
# Sanity check: current version should be 0.X.Y | ||
if ! grep -q '^0\.[0-9]\+\.[0-9]\+$' <<< "${current_version}"; then | ||
echo "Invalid version (not in 0.X.Y format): ${current_version}" | ||
exit 1 | ||
fi | ||
minor_version=$(sed 's/^0\.\([0-9]\+\).*/\1/' <<< "${current_version}") | ||
next_version=0.$((minor_version + 1)).0-dev | ||
echo "Bumping version to ${next_version}" | ||
# See release.yml for meaning of these arguments | ||
cargo release "${next_version}" \ | ||
--workspace \ | ||
--no-publish \ | ||
--execute \ | ||
--no-tag \ | ||
--no-confirm \ | ||
--no-push \ | ||
--exclude ci \ | ||
--exclude errors \ | ||
--exclude bevy-ios-example \ | ||
--exclude spancmp \ | ||
--exclude build-wasm-example | ||
- name: Create PR | ||
uses: peter-evans/create-pull-request@v3 | ||
with: | ||
delete-branch: true | ||
base: "main" | ||
title: "Bump Version after Release" | ||
body: | | ||
Bump version after release | ||
This PR has been auto-generated |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,24 +18,32 @@ jobs: | |
|
||
- name: Setup release | ||
run: | | ||
# Set the commit author to the github-actions bot. See discussion here for more information: | ||
# https://github.com/actions/checkout/issues/13#issuecomment-724415212 | ||
# https://github.community/t/github-actions-bot-email-address/17204/6 | ||
git config user.name 'Bevy Auto Releaser' | ||
git config user.email '[email protected]' | ||
git config user.email '41898282+github-actions[bot]@users.noreply.github.com' | ||
# release: remove the dev suffix, like going from 0.X.0-dev to 0.X.0 | ||
# --workspace: updating all crates in the workspace | ||
# --no-publish: do not publish to crates.io | ||
# --execute: not a dry run | ||
# --no-tag: do not push tag for each new version | ||
# --no-push: do not push the update commits | ||
# --dependent-version upgrade: change 0.X.0-dev in internal dependencies to 0.X.0 | ||
# --exclude: ignore those packages | ||
cargo release minor \ | ||
cargo release release \ | ||
--workspace \ | ||
--no-publish \ | ||
--execute \ | ||
--no-tag \ | ||
--no-confirm \ | ||
--no-push \ | ||
--dependent-version upgrade \ | ||
--exclude ci \ | ||
--exclude errors \ | ||
--exclude bevy-ios-example | ||
--exclude bevy-ios-example \ | ||
--exclude spancmp \ | ||
--exclude build-wasm-example | ||
- name: Create PR | ||
uses: peter-evans/create-pull-request@v3 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters