-
Notifications
You must be signed in to change notification settings - Fork 10
68 lines (60 loc) · 2.42 KB
/
update-caret-version.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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)
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='$(echo "${{ steps.tag.outputs.TAG_NAME }}" | sed 's/^.//')',/" setup.py
git add setup.py
sed -i "s|<version>.*</version>|<version>$(echo "${{ steps.tag.outputs.TAG_NAME }}" | sed 's/^.//')</version>|" package.xml
git add package.xml
git commit -m "chore: update 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 setup.py & package.xml to ${{ steps.tag.outputs.TAG_NAME }}" \
--base main \
--head ${{ steps.tag.outputs.BRANCH_NAME }}
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}