-
-
Notifications
You must be signed in to change notification settings - Fork 977
48 lines (40 loc) · 1.64 KB
/
promote.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Promote the current main branch to a stable release.
# This will not actually release anything, so you need to run the release workflow after this.
#
# IE if the current master version is 0.4.0-rc.7, this will create a PR to promote it to 0.4.0
#
# - update the version in the Cargo.toml to v0.4.0
# - generate a v0.4 branch
# - push the branch to the repository
# - then bump 0.4.0-rc.1 to 0.5.0-rc.0
#
# This means main will never be a "stable" release, and we can always merge breaking changes to main
# and backport them to the latest stable release
#
# This is configured to be ran manually, but could honestly just be a release workflow
name: Promote main to stable branch
on:
workflow_dispatch:
permissions:
actions: write
jobs:
promote:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Publish the next pre-release
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
# go from eg 0.4.0-rc.7 to 0.4.0, committing the change
cargo workspaces version -y minor
# create a new branch for the release
RELEASE_BRANCH=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
RELEASE_BRANCH=v$(echo $RELEASE_BRANCH | sed 's/\.[0-9]*$//')
git branch $RELEASE_BRANCH
# go from 0.4.0 to 0.5.0-rc.0
cargo workspaces version -y preminor --pre-id rc
# push the new branch to the repository
git push origin $RELEASE_BRANCH
# push the new version to the repository
git push origin main