Skip to content

Prepare new tag & changelog PR #8

Prepare new tag & changelog PR

Prepare new tag & changelog PR #8

Workflow file for this run

# Authors: Madhavan Sridharan, Ted Willke
name: Prepare new tag & changelog PR
# runs on
# * manually triggered
on:
workflow_dispatch:
inputs:
tag_version:
description: 'Tag version to create (e.g. X.Y.Z-beta.M)'
required: true
new_revision:
description: 'New revision to update in pom.xml (e.g. X.Y.Z-beta.N-SNAPSHOT)'
required: true
# global env vars, available in all jobs and steps
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
new_tag_and_changelog:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Git config
run: |
git config user.name "GitHub Actions"
git config user.email "[email protected]"
- name: Update revision in pom.xml for release
run: |
sed -i 's|<revision>.*</revision>|<revision>${{ github.event.inputs.tag_version }}</revision>|' ./pom.xml
git add ./pom.xml
git commit -m "chore (release): Set release version to ${{ github.event.inputs.tag_version }}"
# Note: the tag version will be pushed right away at this step prior to changelog pr merging
- name: Create and push tag
run: |
git tag -a "${{ github.event.inputs.tag_version }}" -m "Release tag version ${{ github.event.inputs.tag_version }}"
git push origin "${{ github.event.inputs.tag_version }}"
- name: Generate changelog
continue-on-error: true
run: ./update_changelog.sh
- name: Create pull request
uses: peter-evans/create-pull-request@v7
env:
GITHUB_TOKEN:
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: "release/bump-tag-version-and-update-changelog"
branch-suffix: "short-commit-hash"
base: "main"
title: "chore(release): Bump tag version and update changelog"
commit-message: "chore(release): Bump tag version and update changelog"
body: |
This pull request does the following as part of the release process,
- bumps the tag version to ${{ github.event.inputs.tag_version }}
- updates changelog to include changes for current release
- bumps the revision in pom.xml to ${{ github.event.inputs.tag_version }}
Please review and merge.
- name: Update revision in pom.xml for next development version
run: |
sed -i 's|<revision>.*</revision>|<revision>${{ github.event.inputs.new_revision }}</revision>|' ./pom.xml
git checkout -b "release/bump-version-to-${{ github.event.inputs.new_revision }}"
git add ./pom.xml
git commit -m "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for continued development"
- name: Ensure remote branch exists for version bump
run: |
BRANCH="release/bump-version-to-${{ github.event.inputs.new_revision }}"
if git ls-remote --exit-code origin $BRANCH; then
echo "Remote branch exists."
else
echo "Remote branch does not exist. Creating it."
git push origin HEAD:$BRANCH
fi
- name: Create pull request for version bump
uses: peter-evans/create-pull-request@v7
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
branch: "release/bump-version-to-${{ github.event.inputs.new_revision }}"
branch-suffix: "short-commit-hash"
base: "main"
title: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for development"
commit-message: "chore(release): Bump version to ${{ github.event.inputs.new_revision }} for ongoing development"
body: |
This pull request updates the pom.xml version to ${{
github.event.inputs.new_revision }} to start development for the next release.