@@ -102,6 +102,15 @@ jobs:
102
102
needs : [ build ]
103
103
runs-on : ubuntu-latest
104
104
steps :
105
+ - name : Set up Go
106
+ uses : actions/setup-go@v2
107
+ with :
108
+ go-version : ' 1.20'
109
+ check-latest : true
110
+ - name : Checkout code
111
+ uses : actions/checkout@v2
112
+ with :
113
+ fetch-depth : 0
105
114
- name : Helm tool installer
106
115
uses : Azure/setup-helm@v1
107
116
with :
@@ -114,8 +123,10 @@ jobs:
114
123
sed -i "s/tag:.*$/tag: \"${VERSION}\"/" charts/kubevpn/values.yaml
115
124
- name : Tar chart
116
125
run : |
117
- tar --transform 's/^charts\/kubevpn/kubevpn/' -zcf kubevpn-chart.tar.gz charts/kubevpn
118
- shasum -a 256 kubevpn-chart.tar.gz | awk '{print $1}' > kubevpn-chart.tar.gz-SHA256
126
+ VERSION=${GITHUB_REF#refs/*/}
127
+ CHART_VERSION=${VERSION/#v/}
128
+ tar --transform 's/^charts\/kubevpn/kubevpn/' -zcf kubevpn-${CHART_VERSION}.tgz charts/kubevpn
129
+ shasum -a 256 kubevpn-${CHART_VERSION}.tgz | awk '{print $1}' > kubevpn-${CHART_VERSION}.tgz-SHA256
119
130
- name : Download UPLOAD_URL
120
131
uses : actions/download-artifact@v2
121
132
with :
@@ -125,21 +136,87 @@ jobs:
125
136
run : |
126
137
UploadUrl=$(cat ./UPLOAD_URL)
127
138
echo "::set-output name=upload_url::$UploadUrl"
139
+ - name : Get assert name
140
+ id : get_assert_info
141
+ run : |
142
+ VERSION=${GITHUB_REF#refs/*/}
143
+ CHART_VERSION=${VERSION/#v/}
144
+ AssertName=kubevpn-${CHART_VERSION}.tgz
145
+ echo "::set-output name=assert_name::$AssertName"
146
+ - name : Get assert SHA256 name
147
+ id : get_assert_info_sha256
148
+ run : |
149
+ VERSION=${GITHUB_REF#refs/*/}
150
+ CHART_VERSION=${VERSION/#v/}
151
+ AssertName=kubevpn-${CHART_VERSION}.tgz-SHA256
152
+ echo "::set-output name=assert_name::$AssertName"
128
153
- name : Upload Release Asset KubeVPN Server Chart
129
154
uses : actions/upload-release-asset@v1
130
155
env :
131
156
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
132
157
with :
133
158
upload_url : ${{ steps.get_release_info.outputs.upload_url }}
134
- asset_path : kubevpn-chart.tar.gz
135
- asset_name : kubevpn-chart.tar.gz
159
+ asset_path : ${{ steps.get_assert_info.outputs.assert_name }}
160
+ asset_name : ${{ steps.get_assert_info.outputs.assert_name }}
136
161
asset_content_type : application/octet-stream
137
162
- name : Upload Release Asset KubeVPN Chart SHA256
138
163
uses : actions/upload-release-asset@v1
139
164
env :
140
165
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
141
166
with :
142
167
upload_url : ${{ steps.get_release_info.outputs.upload_url }}
143
- asset_path : kubevpn-chart.tar.gz-SHA256
144
- asset_name : kubevpn-chart.tar.gz-SHA256
145
- asset_content_type : application/octet-stream
168
+ asset_path : ${{ steps.get_assert_info_sha256.outputs.assert_name }}
169
+ asset_name : ${{ steps.get_assert_info_sha256.outputs.assert_name }}
170
+ asset_content_type : application/octet-stream
171
+
172
+ github-pages-deploy :
173
+ name : Release Helm Chart To branch master
174
+ permissions :
175
+ contents : write
176
+ runs-on : ubuntu-latest
177
+ needs : release-helm-chart
178
+ steps :
179
+ - name : Set up Go
180
+ uses : actions/setup-go@v2
181
+ with :
182
+ go-version : ' 1.20'
183
+ check-latest : true
184
+ - name : Checkout code
185
+ uses : actions/checkout@v2
186
+ with :
187
+ fetch-depth : 0
188
+ - name : Configure Git
189
+ run : |
190
+ git config user.name "$GITHUB_ACTOR"
191
+ git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
192
+ - name : Install Helm
193
+ uses : azure/setup-helm@v3
194
+ - name : Change chart version
195
+ run : |
196
+ VERSION=${GITHUB_REF#refs/*/}
197
+ CHART_VERSION=${VERSION/#v/}
198
+ sed -i "s/^appVersion:.*$/appVersion: \"${VERSION}\"/;s/^version:.*$/version: ${CHART_VERSION}/" charts/kubevpn/Chart.yaml
199
+ sed -i "s/tag:.*$/tag: \"${VERSION}\"/" charts/kubevpn/values.yaml
200
+ - name : Package and upload helm chart
201
+ run : |
202
+ # download helm chart releaser
203
+ curl -sSLo cr.tar.gz "https://github.com/helm/chart-releaser/releases/download/v1.6.1/chart-releaser_1.6.1_linux_amd64.tar.gz"
204
+ tar -xzf cr.tar.gz
205
+ rm -f cr.tar.gz
206
+ owner=$(cut -d '/' -f 1 <<< "$GITHUB_REPOSITORY")
207
+ repo=$(cut -d '/' -f 2 <<< "$GITHUB_REPOSITORY")
208
+ # package chart
209
+ ./cr package charts/$repo
210
+ # update index and push to github pages
211
+ git config user.email "$owner@users.noreply.github.com"
212
+ git config user.name "$owner"
213
+ ./cr index \
214
+ --owner "$owner" \
215
+ --git-repo "$repo" \
216
+ --token "${{ secrets.CREATE_HELM_PR }}" \
217
+ --release-name-template "v{{ .Version }}" \
218
+ --index-path ./index.yaml \
219
+ --charts-repo https://github.com/$owner/$repo \
220
+ --pages-branch master \
221
+ --pages-index-path charts/index.yaml \
222
+ --push
0 commit comments