From 4cd6129035dd0159e7e7c9f97cca2b5276adebab Mon Sep 17 00:00:00 2001 From: Victor Rubezhny Date: Thu, 13 Jun 2024 01:05:48 +0200 Subject: [PATCH 1/2] [build] Use HELM binary from upstream project The check-helm GitHub Action is changed to download the binary from the https://github.com/helm/helm project latest release assets. Fixes: #4033 Signed-off-by: Victor Rubezhny --- .github/workflows/check-helm.yml | 57 ++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/.github/workflows/check-helm.yml b/.github/workflows/check-helm.yml index 2b07126c6..32807aca0 100644 --- a/.github/workflows/check-helm.yml +++ b/.github/workflows/check-helm.yml @@ -16,33 +16,56 @@ jobs: - name: Get latest HELM version run: | echo "REPO_HELM_VERSION=$(cat src/tools.json | jq -r .helm.version)" >> $GITHUB_ENV - baseUrl="https://mirror.openshift.com/pub/openshift-v4/clients/helm" - echo "LATEST_TOOL_URL=$(echo ${baseUrl})" >> $GITHUB_ENV - echo "LATEST_TOOL_RELEASE=$(curl -s -L ${baseUrl} | grep "${baseUrl}" | sed "s|${baseUrl}||" | grep -v "latest" | sed 's/[^"]*"\([^"]*\).*/\1/' | sed "s|/||g" | sort -V | tail -n 1)" >> $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 != '') && (env.LATEST_TOOL_VERSION != env.REPO_HELM_VERSION) }} run: | - echo PR_EXISTS=$(gh pr --repo ${{ github.repository }} list --state all --search "update helm ${{env.LATEST_TOOL_RELEASE}} in:title" --json url | jq length) >> $GITHUB_ENV + echo PR_EXISTS=$(gh pr --repo ${{ github.repository }} list --state all --search "update helm cli to ${{env.LATEST_TOOL_RELEASE}} in:title" --json url | jq length) >> $GITHUB_ENV - name: Update src/tools.json with latest helm version - if: ${{ (env.LATEST_TOOL_RELEASE != '') && (env.LATEST_TOOL_RELEASE != env.REPO_HELM_VERSION) && (env.PR_EXISTS == 0) }} + if: ${{ env.PR_EXISTS == 0 }} run: | - jq --indent 4 '.helm.version = "${{ env.LATEST_TOOL_RELEASE }}"' src/tools.json | jq --indent 4 '.helm.versionRange = "^${{ env.LATEST_TOOL_RELEASE }}"' | jq --indent 4 '.helm.versionRangeLabel = "version >= ${{ env.LATEST_TOOL_RELEASE }}"' > src/tools.json.new + 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 - old_url=`jq -r ".helm.platform[\"${platform}\"].url" src/tools.json` - dlFileName=`jq -r ".helm.platform[\"${platform}\"].dlFileName" src/tools.json` - new_url=`echo ${old_url} | sed "s|${{ env.REPO_HELM_VERSION }}|${{ env.LATEST_TOOL_RELEASE }}|"` - checksum_url=`echo "${new_url}.sha256"` - checksum=`curl -s -L ${checksum_url} | sed "s| ||g"` + pltfrm="$platform" + ext=".tar.gz" + exeExt="" + if [[ "$platform" == "win"* ]]; then + pltfrm="windows" + ext=".zip" + exeExt=".exe" + fi + arch="-amd64" + if [[ $platform == *"-a"* ]]; then + arch="" # already in platform string + fi + + new_url="https://get.helm.sh/helm-${{ env.LATEST_TOOL_RELEASE }}-${pltfrm}${arch}${ext}" + checksum=`curl -s ${new_url}.sha256sum | sed -e 's/\s.*$//'` + dlFileName="helm-${pltfrm}${arch}${ext}" + filePrefix="${pltfrm}${arch}/" + cmdFileName="helm${exeExt}" + jq --indent 4 ".helm.platform[\"${platform}\"].url = \"${new_url}\"" src/tools.json \ - | jq --indent 4 ".helm.platform[\"${platform}\"].sha256sum = \"${checksum}\"" > src/tools.json.new + | jq --indent 4 ".helm.platform[\"${platform}\"].sha256sum = \"${checksum}\"" \ + | jq --indent 4 ".helm.platform[\"${platform}\"].dlFileName = \"${dlFileName}\"" \ + | jq --indent 4 ".helm.platform[\"${platform}\"].filePrefix = \"${filePrefix}\"" \ + | jq --indent 4 ".helm.platform[\"${platform}\"].cmdFileName = \"${cmdFileName}\"" > src/tools.json.new > src/tools.json.new mv src/tools.json.new src/tools.json done - name: Create pull request - if: ${{ (env.LATEST_TOOL_RELEASE != '') && (env.LATEST_TOOL_RELEASE != env.REPO_HELM_VERSION) && (env.PR_EXISTS == 0) }} + if: ${{ env.PR_EXISTS == 0 }} run: | git config --global user.email "openshifttools-bot@users.noreply.github.com" git config --global user.name "openshifttools-bot" - git checkout -b "helm-${{ env.LATEST_TOOL_RELEASE }}" - git commit -am "Update helm to ${{ env.LATEST_TOOL_RELEASE }}" - git push origin "helm-${{ env.LATEST_TOOL_RELEASE }}" - gh pr create --title "Update helm to ${{ env.LATEST_TOOL_RELEASE }}" --body "See ${{ env.LATEST_TOOL_URL }}/${{ env.LATEST_TOOL_RELEASE }}" + git checkout -b "bump-helm-${{ env.LATEST_TOOL_RELEASE }}" + git commit -am "Update HELM CLI to ${{ env.LATEST_TOOL_RELEASE }}" + git push origin "bump-helm-${{ env.LATEST_TOOL_RELEASE }}" + gh pr create --title "Update HELM CLI to ${{ env.LATEST_TOOL_RELEASE }}" --body "See ${{ env.LATEST_TOOL_URL }}" From 9736185cbae0ca2c61656973b1824c5177d836cf Mon Sep 17 00:00:00 2001 From: openshifttools-bot Date: Wed, 19 Jun 2024 13:04:25 +0000 Subject: [PATCH 2/2] Update HELM CLI to v3.15.2 --- src/tools.json | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/src/tools.json b/src/tools.json index a0db930a6..6d79186a2 100644 --- a/src/tools.json +++ b/src/tools.json @@ -127,44 +127,49 @@ } }, "helm": { - "description": "oc helm CLI", - "vendor": "Red Hat, Inc.", + "description": "Helm CLI tool", + "vendor": "The Helm Project", "name": "helm", - "version": "3.13.2", - "versionRange": "^3.13.2", - "versionRangeLabel": "version >= 3.13.2", + "version": "3.15.2", + "versionRange": "^3.15.2", + "versionRangeLabel": "version >= 3.15.2", "dlFileName": "helm", "filePrefix": "", "platform": { "win32": { - "url": "https://developers.redhat.com/content-gateway/rest/mirror2/pub/openshift-v4/clients/helm/3.13.2/helm-windows-amd64.exe.zip", - "sha256sum": "12de9ce0ca57b1408e7f912ad864f103600f2ecc4b7309a4c6925e3e9ad28a4f", - "dlFileName": "helm-windows-amd64.exe.zip", - "cmdFileName": "helm-windows-amd64.exe" + "url": "https://get.helm.sh/helm-v3.15.2-windows-amd64.zip", + "sha256sum": "cbf40b79fa2a7dbd6e24201f8660b56261d10d6e7b5cadc3ff78100fb45b3c69", + "dlFileName": "helm-windows-amd64.zip", + "cmdFileName": "helm.exe", + "filePrefix": "windows-amd64/" }, "darwin": { - "url": "https://developers.redhat.com/content-gateway/rest/mirror2/pub/openshift-v4/clients/helm/3.13.2/helm-darwin-amd64.tar.gz", - "sha256sum": "ebde3c602bcb3ddc8a8d51e9410d71378f3f73099dc29952d1a667cc7f483812", + "url": "https://get.helm.sh/helm-v3.15.2-darwin-amd64.tar.gz", + "sha256sum": "e99a9266a5328cb575d81ef10247911f42d9e90c76ef6eef154c5c535565658b", "dlFileName": "helm-darwin-amd64.tar.gz", - "cmdFileName": "helm-darwin-amd64" + "cmdFileName": "helm", + "filePrefix": "darwin-amd64/" }, "darwin-arm64": { - "url": "https://developers.redhat.com/content-gateway/rest/mirror2/pub/openshift-v4/clients/helm/3.13.2/helm-darwin-arm64.tar.gz", - "sha256sum": "fc369722c4a39e9a6249ad07605161bfa04637ac12d773629e64600cc3a2694c", + "url": "https://get.helm.sh/helm-v3.15.2-darwin-arm64.tar.gz", + "sha256sum": "30143dabc1da9d32c7d6c589fad04b1f1ecc73841393d5823fa21c5d7f5bf8f6", "dlFileName": "helm-darwin-arm64.tar.gz", - "cmdFileName": "helm-darwin-arm64" + "cmdFileName": "helm", + "filePrefix": "darwin-arm64/" }, "linux": { - "url": "https://developers.redhat.com/content-gateway/rest/mirror2/pub/openshift-v4/clients/helm/3.13.2/helm-linux-amd64.tar.gz", - "sha256sum": "fa4986b6abcd599d899d2e1750123498e1d90edea77c9afd48333b6cce19ce0a", + "url": "https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz", + "sha256sum": "2694b91c3e501cff57caf650e639604a274645f61af2ea4d601677b746b44fe2", "dlFileName": "helm-linux-amd64.tar.gz", - "cmdFileName": "helm-linux-amd64" + "cmdFileName": "helm", + "filePrefix": "linux-amd64/" }, "linux-arm64": { - "url": "https://developers.redhat.com/content-gateway/rest/mirror2/pub/openshift-v4/clients/helm/3.13.2/helm-linux-arm64.tar.gz", - "sha256sum": "bd0590fc831d3c3ec08f2148c2126f90ccdb0a4bb9e541cb8e8bd1d3f3b6c1b4", + "url": "https://get.helm.sh/helm-v3.15.2-linux-arm64.tar.gz", + "sha256sum": "adcf07b08484b52508e5cbc8b5f4b0b0db50342f7bc487ecd88b8948b680e6a7", "dlFileName": "helm-linux-arm64.tar.gz", - "cmdFileName": "helm-linux-arm64" + "cmdFileName": "helm", + "filePrefix": "linux-arm64/" } } },