-
Notifications
You must be signed in to change notification settings - Fork 5
109 lines (90 loc) · 3.42 KB
/
release.yml
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
name: release
on:
workflow_dispatch:
branches: [ 'release/**' ]
env:
RELEASE_VERSION: ''
DEV_VERSION: ''
jobs:
read_version:
runs-on: ubuntu-latest
outputs:
DEV_VERSION: ${{ steps.createVersion.outputs.DEV_VERSION}}
RELEASE_VERSION: ${{ steps.createVersion.outputs.RELEASE_VERSION}}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node 20
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Create new development version
id: createVersion
run: |
CURRENT_VERSION=$(node -e "console.log(require('./package.json').version)")
RELEASE_VERSION=`echo $CURRENT_VERSION | cut -d- -f1`
echo "Current version: $CURRENT_VERSION"
MAJOR=`echo $CURRENT_VERSION | cut -d. -f1`
MINOR=`echo $CURRENT_VERSION | cut -d. -f2`
DEV_VERSION=${MAJOR}.$((MINOR+1)).0-SNAPSHOT
echo
echo "Release version: $RELEASE_VERSION"
echo "Develop version: $DEV_VERSION"
echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "$GITHUB_OUTPUT"
echo "DEV_VERSION=${DEV_VERSION}" >> "$GITHUB_OUTPUT"
echo "### :rocket: ${RELEASE_VERSION}" >> $GITHUB_STEP_SUMMARY
update_dev:
needs: read_version
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node 20
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Create branch to update develop version
env:
DEV_VERSION: ${{ needs.read_version.outputs.DEV_VERSION }}
run: |
git config --global user.email "[email protected]"
git config --global user.name "Github Actions"
git branch feature/update_develop_${DEV_VERSION}
git checkout feature/update_develop_${DEV_VERSION}
npm version -allow-same-version ${DEV_VERSION}
git push --set-upstream origin feature/update_develop_${DEV_VERSION}
- name: Create PR to merge changes to Develop and update Version
env:
RELEASE_VERSION: ${{ needs.read_version.outputs.RELEASE_VERSION }}
GH_TOKEN: ${{ github.token }}
run: |
PR_URL=`gh pr create --draft -B develop --title "Merge release branch '${RELEASE_VERSION}' back to develop" --body "Merge release branch '${RELEASE_VERSION}' back to develop"`
echo $PR_URL
release:
needs: read_version
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node 20
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Set the release version
env:
RELEASE_VERSION: ${{ needs.read_version.outputs.RELEASE_VERSION }}
run: |
git config --global user.email "[email protected]"
git config --global user.name "Github Actions"
npm version -allow-same-version ${RELEASE_VERSION}
git push
- name: Create PR to merge release branch to main
env:
RELEASE_VERSION: ${{ needs.read_version.outputs.RELEASE_VERSION }}
GH_TOKEN: ${{ github.token }}
run: |
PR_URL=`gh pr create --draft -B main --title "Merge release branch '${RELEASE_VERSION}'" --body "Merge release branch '${RELEASE_VERSION}'"`
echo $PR_URL