-
Notifications
You must be signed in to change notification settings - Fork 61
76 lines (73 loc) · 3.79 KB
/
check-helm.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
name: check-helm
on:
schedule:
- cron: "0 8 * * *"
workflow_dispatch:
jobs:
check-helm-repo:
runs-on: ubuntu-latest
env:
TOOL_REPO: helm/helm
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Check Out Code
uses: actions/checkout@v4
- name: Get latest HELM version
run: |
echo "REPO_HELM_VERSION=$(cat src/tools.json | jq -r .helm.version)" >> $GITHUB_ENV
LATEST_TOOL_RELEASE_RESP=$(gh release --repo ${{ env.TOOL_REPO }} view --json tagName,url)
echo "LATEST_TOOL_RELEASE=$(echo ${LATEST_TOOL_RELEASE_RESP} | jq -r .tagName)" >> $GITHUB_ENV
echo "LATEST_TOOL_VERSION=$(echo ${LATEST_TOOL_RELEASE_RESP} | jq -r .tagName | sed 's|v||')" >> $GITHUB_ENV
echo "LATEST_TOOL_URL=$(echo ${LATEST_TOOL_RELEASE_RESP} | jq -r .url)" >> $GITHUB_ENV
- name: Find existing PR for HELM version
if: ${{ env.LATEST_TOOL_VERSION != '' }}
run: |
if [[ "${{ env.LATEST_TOOL_VERSION != env.REPO_HELM_VERSION }}" == "true" ]]; then
prFound=$(gh pr --repo ${{ github.repository }} list --state all --search "update helm cli to ${{env.LATEST_TOOL_RELEASE}} in:title" --json url | jq length)
if [[ $prFound == 0 ]]; then
echo SHOULD_UPDATE=true >> $GITHUB_ENV
fi
fi
- name: Update src/tools.json with latest helm version
if: ${{ env.SHOULD_UPDATE == 'true' }}
run: |
jq --indent 4 '.helm.description = "Helm CLI tool"' src/tools.json \
| jq --indent 4 '.helm.vendor = "The Helm Project"' \
| jq --indent 4 '.helm.version = "${{ env.LATEST_TOOL_VERSION }}"' \
| jq --indent 4 '.helm.versionRange = "^${{ env.LATEST_TOOL_VERSION }}"' \
| jq --indent 4 '.helm.versionRangeLabel = "version >= ${{ env.LATEST_TOOL_VERSION }}"' > src/tools.json.new
mv src/tools.json.new src/tools.json
for platform in win32 darwin darwin-arm64 linux linux-arm64; do
pltfrm="$platform"
ext=".tar.gz"
exeExt=""
if [[ "$platform" == "win"* ]]; then
pltfrm="windows"
ext=".zip"
<