forked from RocketChat/helm-charts
-
Notifications
You must be signed in to change notification settings - Fork 0
94 lines (82 loc) · 2.95 KB
/
main.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
name: Test and/or release helm chart
on:
workflow_call:
secrets:
github-token:
required: true
inputs:
tag:
required: true
type: string
chartVersion:
required: false
type: string
env:
HELM_REPO: RocketChat/helm-charts
jobs:
set-versions:
runs-on: ubuntu-latest
outputs:
chart-version: ${{ steps.set-chart-version.outputs.chart-version }}
app-version: ${{ inputs.tag }}
run: ${{ steps.set-chart-version.outputs.run }}
steps:
- uses: actions/checkout@v3
with:
repository: ${{ env.HELM_REPO }}
- id: set-chart-version
shell: bash
run: |
chart_version="${{ inputs.chartVersion}}"
if [[ -n "$chart_version" ]]; then
echo "chart-version=$chart_version"
echo "chart-version=$chart_version" >>$GITHUB_OUTPUT
echo "run=true" >> $GITHUB_OUTPUT
exit 0
fi
chart_version="$(awk '/^version:/ {print $2}' rocketchat/Chart.yaml)"
[[ -n "$chart_version" ]]
app_version="$(awk '/^appVersion:/ {print $2}' rocketchat/Chart.yaml)"
[[ -n "$app_version" ]]
new_version="${{ inputs.tag }}"
new_version="${new_version%-rc*}"
new_version=(${new_version//./ })
old_version=(${app_version//./ })
chart_version_string=
if [[ "${new_version[0]}" -gt "${old_version[0]}" ]]; then
# major bump
chart_version_string="$((chart_version[0] + 1)).${chart_version[1]}.${chart_version[2]}"
elif [[ "${new_version[1]}" -gt "${old_version[1]}" ]]; then
# minor bump
chart_version_string="${chart_version[0]}.$((chart_version[1] + 1)).${chart_version[2]}"
elif [[ "${new_version[2]}" -gt "${old_version[2]}" ]]; then
# patch bump
chart_version_string="${chart_version[0]}.${chart_version[1]}.$((chart_version[2] + 1))"
else
# new is < old, don't run
echo 'run=false' >>$GITHUB_OUTPUT
exit 0 # because we don't want to fail
fi
echo "chart-version=$chart_version_string"
echo "chart-version=$chart_version_string" >>$GITHUB_OUTPUT
echo 'run=true' >> $GITHUB_OUTPUT
can-chart-run:
needs:
- set-versions
if: ${{ needs.set-versions.outputs.run }} == 'true'
uses: RocketChat/helm-charts/.github/workflows/test.yml@master
with:
tag: ${{ needs.set-versions.outputs.app-version }}
chartVersion: ${{ needs.set-versions.outputs.chart-version }}
update-release:
needs:
- can-chart-run
- set-versions
# prettier-ignore
if: '! contains(inputs.tag, ''rc'')'
uses: RocketChat/helm-charts/.github/workflows/release.yml@master
with:
tag: ${{ inputs.tag }}
chartVersion: ${{ needs.set-versions.outputs.chart-version}}
secrets:
github-token: ${{ secrets.github-token }}