The following is a quick recipe for a manual release trigger using GitHub actions.
name: manual
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to release from'
required: true
default: 'warning'
version:
description: 'Version to release'
required: true
default: 'warning'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
with:
token: ${{ secrets.GIT_PASSWORD }}
- name: Release from given branch with given version
run: |
git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
TAG=${GITHUB_REF}
VERSION=${{ github.event.inputs.version }}
BRANCH=${{ github.event.inputs.branch }}
echo "Releasing $VERSION from $BRANCH branch"
git checkout $BRANCH
git checkout -b release
mvn -B versions:set versions:commit -DnewVersion=$VERSION
git config --global user.email "noreply@noreply.com"
git config --global user.name "Automated release"
git commit -a -m "Releasing version $VERSION"
git tag v$VERSION -f
git push origin v$VERSION -f
git checkout $BRANCH
git branch -D release
git push origin :${TAG}
Adjust the username and the email address in the 2 git config commands. Add the GIT_PASSWORD secret as a secret to your GitHub account (note this should be a personal access token that is allowed to push to your GitHub repository).
Posted June 30th, 2021