-
Notifications
You must be signed in to change notification settings - Fork 119
110 lines (96 loc) · 4.09 KB
/
rw-bump-version.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
110
# (C) 2024 GoodData Corporation
# This workflow is triggered by a workflow call. It will bump the version of the repository and push the changes to the source branch.
# It will also return the version which was created.
# if the 'skip-bump' input is set to true, it will just return the current version without bumping it.
name: rw ~ Rush ~ Bump version
on:
workflow_call:
inputs:
source-branch:
required: true
description: "The name of the source branch"
type: string
bump:
required: false
description: "The type of version bump (major, minor, patch, prerelease)"
type: string
prerelease-id:
required: false
default: null
description: "The prerelease ID (alpha, beta, etc.)"
type: string
skip-bump:
required: false
default: false
description: "Skip bumping the version and just return the current version"
type: boolean
outputs:
version:
description: "Version which was created"
# Ternary operation to decide which job's output to use based on the 'skip-bump' input.
value: ${{ inputs.skip-bump == true && jobs.get-version.outputs.version || jobs.bump-version-and-commit.outputs.version }}
jobs:
get-version:
if: ${{ inputs.skip-bump }}
runs-on: [ubuntu-latest]
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18.17.0
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.source-branch }}
token: ${{ secrets.TOKEN_GITHUB_YENKINS_ADMIN }}
- name: Get version
uses: gooddata/gooddata-ui-sdk/.github/actions/get-version-action@master
id: version
bump-version-and-commit:
if: ${{ !inputs.skip-bump && inputs.bump }}
runs-on: [ubuntu-latest]
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 18.17.0
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.source-branch }}
token: ${{ secrets.TOKEN_GITHUB_YENKINS_ADMIN }}
- name: Add repository to git safe directories to avoid dubious ownership issue
run: git config --global --add safe.directory $GITHUB_WORKSPACE
- name: Install rush
run: npm install -g @microsoft/rush
- name: Config user
run: |
git config --global user.email "git-action@gooddata.com"
git config --global user.name "git-action"
- name: Rush bump version and override prerelease-id
if: ${{ inputs.prerelease-id}}
env:
BUMP: ${{ inputs.bump }}
PRERELEASE_ID: ${{ inputs.prerelease-id }}
run: rush version --bump --override-bump $BUMP --override-prerelease-id $PRERELEASE_ID
- name: Rush bump version
if: ${{ !inputs.prerelease-id}}
env:
BUMP: ${{ inputs.bump }}
run: rush version --bump --override-bump $BUMP
- name: Get version
uses: gooddata/gooddata-ui-sdk/.github/actions/get-version-action@master
id: version
- name: Git commit and push
run: |
# add changelogs
git add libs/sdk-ui-all/CHANGELOG.* || true
git ls-files | grep '\.json' | xargs git add
git commit -a -m "chore: bump versions to $VERSION" -m "risk: nonprod"
git push origin ${{ inputs.source-branch }}
env:
VERSION: ${{ steps.version.outputs.version }}