Skip to content

Commit

Permalink
Add: auto update workflow on package.xml version
Browse files Browse the repository at this point in the history
Signed-off-by: h-suzuki <[email protected]>
  • Loading branch information
h-suzuki-isp committed Feb 2, 2024
1 parent 848a3e8 commit 805666a
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/update_caret_version.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Update Version and Create PR

on:
push:
tags:
- v*

jobs:
update-version-and-create-pr:
permissions:
actions: write
checks: write
contents: write
deployments: write
issues: write
packages: write
pull-requests: write
repository-projects: write
security-events: write
statuses: write

runs-on: ubuntu-latest
steps:
- name: Set up Git
run: |
git config --global user.name github-actions
git config --global user.email [email protected]
- name: Get New Branch and Tag
id: tag
run: |
# latest_tag=$(curl -s https://api.github.com/repos/${GITHUB_REPOSITORY}/tags | jq -r .[0].name)
latest_tag=$(curl -s https://api.github.com/repos/tier4/caret_analyze_cpp_impl/tags | jq -r .[0].name)
current_tag=${{ github.ref_name }}
branch=rc/$current_tag
echo "LATEST_TAG_NAME=$latest_tag" >> "$GITHUB_OUTPUT"
echo "TAG_NAME=$current_tag" >> "$GITHUB_OUTPUT"
echo "BRANCH_NAME=$branch" >> "$GITHUB_OUTPUT"
- name: Checkout repository2
uses: actions/checkout@v4
with:
ref: ${{ steps.tag.outputs.BRANCH_NAME }}

- name: Commit and push changes
run: |
sed -i "s|<version>.*</version>|<version>$(echo "${{ steps.tag.outputs.TAG_NAME }}" | sed 's/^.//')</version>|" src/package.xml
git add src/package.xml
git commit -m "chore: update package.xml version to ${{ steps.tag.outputs.TAG_NAME }}" -s
git push origin ${{ steps.tag.outputs.BRANCH_NAME }}
- name: Re-create tag
run: |
git push -d origin ${{ steps.tag.outputs.TAG_NAME }}
git tag ${{ steps.tag.outputs.TAG_NAME }}
git push origin ${{ steps.tag.outputs.TAG_NAME }}
- name: Create PR to main branch if the created tag is the latest
run: |
if [ ${{ steps.tag.outputs.LATEST_TAG_NAME }} == ${{ steps.tag.outputs.TAG_NAME }} ]; then
gh pr create --title "chore: update version to ${{ steps.tag.outputs.TAG_NAME }}" \
--body "This pull request updates the version in package.xml to ${{ steps.tag.outputs.TAG_NAME }}" \
--base main \
--head ${{ steps.tag.outputs.BRANCH_NAME }}
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit 805666a

Please sign in to comment.