Version Bump #1584
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
# Automatically run the version bump script. | |
name: Version Bump | |
# prevent concurrent version bumps | |
concurrency: | |
group: "version-bump-${{ github.ref_name }}" | |
on: | |
workflow_dispatch: | |
inputs: | |
suffix: | |
description: "Suffix to append to the version (alpha/beta), leave empty for no suffix." | |
required: false | |
env: | |
RELEASE_PLZ_BIN_URL: https://github.com/MarcoIeni/release-plz/releases/download/release-plz-v0.3.43/release-plz-x86_64-unknown-linux-gnu.tar.gz | |
WORKFLOW_URL: https://github.com/maidsafe/safe_network/actions/runs | |
jobs: | |
bump_version: | |
# only run if its maidsafe repo and not already a release commit. | |
if: > | |
github.repository_owner == 'maidsafe' && | |
!startsWith(github.event.head_commit.message, 'chore(release):') | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: "0" | |
token: ${{ secrets.VERSION_BUMP_COMMIT_PAT }} | |
ref: ${{ github.ref_name }} | |
- name: Get the SHA of the last release commit | |
id: get-sha | |
run: echo "sha=$(git log --grep='chore(release):' -n 1 --pretty=format:"%H")" >> $GITHUB_ENV | |
- name: Fetch the latest code from the specified branch | |
run: git pull origin ${{ github.ref_name }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
# install cargo-edit for bump script, this makes it simpler to bump into workspaces | |
- name: Install cargo-edit with vendored-openssl | |
run: cargo install cargo-edit --features vendored-openssl | |
- shell: bash | |
run: | | |
git config --local user.email "[email protected]" | |
git config --local user.name "GitHub Action" | |
# It's possible to `cargo install` release-plz, but it's very slow to compile on GHA infra. | |
# Therefore we just pull the binary from the Github Release. | |
- name: install release-plz | |
shell: bash | |
run: | | |
curl -L -O $RELEASE_PLZ_BIN_URL | |
tar xvf release-plz-x86_64-unknown-linux-gnu.tar.gz | |
rm release-plz-x86_64-unknown-linux-gnu.tar.gz | |
sudo mv release-plz /usr/local/bin | |
- shell: bash | |
# run as the branch name with the suffix from workflow dispatch, allowing for an empty suffix as a valid option | |
run: | | |
if [[ -z "${{ github.event.inputs.suffix }}" && "${{ github.ref_name }}" != "stable" ]]; then | |
echo "Error: Empty suffix is only allowed on the stable branch." | |
exit 1 | |
fi | |
./resources/scripts/bump_version.sh ${{ github.event.inputs.suffix }} | |
- name: push version bump commit | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.VERSION_BUMP_COMMIT_PAT }} | |
branch: ${{ github.ref_name }} | |
tags: true | |
- name: Cherry-pick to main if on stable | |
if: ${{ github.ref_name == 'stable' }} | |
run: | | |
git fetch origin main | |
git checkout main | |
git cherry-pick stable | |
- name: Push updated version bump commit to main | |
if: ${{ github.ref_name == 'stable' }} | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.VERSION_BUMP_COMMIT_PAT }} | |
branch: main | |
- name: post notification to slack on failure | |
if: ${{ failure() }} | |
uses: bryannice/[email protected] | |
env: | |
SLACK_INCOMING_WEBHOOK: ${{ secrets.SLACK_GH_ACTIONS_WEBHOOK_URL }} | |
SLACK_MESSAGE: "Please check the logs for the run at ${{ env.WORKFLOW_URL }}/${{ github.run_id }}" | |
SLACK_TITLE: "Version Bumping Failed" |