Bump version #14
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
name: Bump version | |
on: | |
workflow_dispatch: | |
inputs: | |
bump_rule: | |
type: choice | |
description: How to bump the project's version (see `python-packages/input4MIPs-CVs/src/input4MIPs_CVs/cli/version.py bump --help`) | |
options: | |
- no-pre-release | |
- major | |
- minor | |
# Disabled because we always sit on pre-releases, | |
# hence same as no-pre-release. | |
# - micro | |
default: "no-pre-release" | |
jobs: | |
bump_version: | |
name: "Bump version" | |
if: "!startsWith(github.event.head_commit.message, 'bump:')" | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
env: | |
CI_COMMIT_EMAIL: "ci-runner@input4MIPs_CVs.invalid" | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install the environment | |
run: | | |
which pip | |
pip install python-packages/input4MIPs-CVs | |
# Pin towncrier | |
# Particularly because of https://github.com/twisted/towncrier/issues/648 | |
pip install 'towncrier==23.11.0' | |
- name: Bump | |
run: | | |
git config --global user.name "$GITHUB_ACTOR" | |
git config --global user.email "$CI_COMMIT_EMAIL" | |
USER_INPUT=${{ github.event.inputs.bump_rule }} | |
BUMP_RULE=${USER_INPUT:-"no-pre-release"} | |
BASE_VERSION=`cat VERSION` | |
echo "Bumping from version $BASE_VERSION" | |
# Bump out of pre-release | |
python python-packages/input4MIPs-CVs/src/input4MIPs_CVs/cli/version.py bump "no-pre-release" --no-pre-release --repo-root-dir . | |
# Bump to new release | |
if [ "${BUMP_RULE}" != "no-pre-release" ]; then | |
python python-packages/input4MIPs-CVs/src/input4MIPs_CVs/cli/version.py bump "${BUMP_RULE}" --no-pre-release --repo-root-dir . | |
fi | |
NEW_VERSION=`cat VERSION` | |
echo "Bumping to version $NEW_VERSION" | |
# Build CHANGELOG | |
towncrier build --yes --version v$NEW_VERSION | |
# Commit, tag and push | |
git commit -a -m "bump: version $BASE_VERSION -> $NEW_VERSION" | |
git tag v$NEW_VERSION | |
git push && git push --tags | |
# Bump to alpha (so that future commits do not have the same | |
# version as the tagged commit) | |
BASE_VERSION=NEW_VERSION | |
# Bump to next pre-release | |
python python-packages/input4MIPs-CVs/src/input4MIPs_CVs/cli/version.py bump "micro" --pre-release --repo-root-dir . | |
NEW_VERSION=`cat VERSION` | |
echo "Bumping version $BASE_VERSION > $NEW_VERSION" | |
# Commit and push | |
git commit -a -m "bump(pre-release): version $BASE_VERSION > $NEW_VERSION" | |
git push |