
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
name: Release
on:
workflow_dispatch:
inputs:
fragment:
type: choice
description: Semantic version target
options:
- bug
- feature
- major
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install xmlstarlet
- name: checkout
uses: actions/checkout@v3
- name: Get current version
id: get_current_version
run: |
current_version=`\
find . -name "package.xml" -print -quit \
| xargs -n 1 -I{} \
xmlstarlet select --template --value-of "//package/version" {}`
echo "current_version=$current_version" >> $GITHUB_OUTPUT
- name: Bump release version
id: bump_version
uses: christian-draeger/increment-semantic-version@1.0.3
with:
current-version: ${{ steps.get_current_version.outputs.current_version }}
version-fragment: ${{ github.event.inputs.fragment }}
- name: Update package version
run: |
find . -type f -name package.xml | \
xargs -n 1 -I {} \
xmlstarlet edit --inplace --pf \
--update "//package/version" \
--value ${{ steps.bump_version.outputs.next-version }} {}
- name: Commit change
env:
user_name: ${{ github.repository_owner }}
user_email: 40206149+m12watanabe1a@users.noreply.github.com
run: |
git config --local user.name ${{ env.user_name }}
git config --local user.email ${{ env.user_email }}
git switch -c release/${{ steps.bump_version.outputs.next-version }}
git add -A
git commit -m "Version upgrade \
${{ steps.get_current_version.outputs.current_version }} \
-> \
${{ steps.bump_version.outputs.next-version }}"
git push --set-upstream origin release/${{ steps.bump_version.outputs.next-version }}
- name: Create Pull Request
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr create \
--title \
"Release ${{ github.event.inputs.fragment }} upgrade \
${{ steps.get_current_version.outputs.current_version }} \
-> \
${{ steps.bump_version.outputs.next-version }}" \
--base main \
--head release/${{ steps.bump_version.outputs.next-version }} \
-b "Version has been upgraded from \
${{ steps.get_current_version.outputs.current_version }} \
-> \
${{ steps.bump_version.outputs.next-version }}
Check the release page: ${{ github.server_url }}/${{ github.repository }}/releases
"
- name: Create release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create \
v${{ steps.bump_version.outputs.next-version }} \
-d --generate-notes \
--target release/${{ steps.bump_version.outputs.next-version }}