Skip to content

Version Bump

Version Bump #1592

Workflow file for this run

# 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"