From 1d7848d33e56621c71b88db79cdcd3214be9025b Mon Sep 17 00:00:00 2001 From: Ludovic Ortega Date: Thu, 19 Dec 2024 22:46:41 +0100 Subject: [PATCH] fix: release workflow, properly discover released tags Signed-off-by: Ludovic Ortega --- .github/workflows/releases.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 30cba03..3cd6ac4 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -36,9 +36,9 @@ jobs: # get current version current_version=$(grep '^version:' "$chart_path/Chart.yaml" | awk '{print $2}') # get current release version - oras discover ghcr.io/${GITHUB_REPOSITORY@L}/${chart}:${current_version} + released_tags=$(oras repo tags ghcr.io/${GITHUB_REPOSITORY@L}/${chart}) - if [ $? -ne 0 ]; then + if ! echo "$released_tags" | grep -qE "^${current_version}$"; then helm dependency build "$chart_path" helm package "$chart_path" --destination ./.cr-release-packages else @@ -84,15 +84,21 @@ jobs: with: name: artifacts path: .cr-release-packages/ + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - name: Push charts to GHCR env: COSIGN_YES: true run: | for chart_path in `find .cr-release-packages -name '*.tgz' -print`; do - # push chart to OCI - helm push ${chart_path} oci://ghcr.io/${GITHUB_REPOSITORY@L} |& tee helm-push-output.log + # push chart to OCI chart_release_file=$(basename "$chart_path") chart=${chart_release_file%-*} + helm push ${chart_path} oci://ghcr.io/${GITHUB_REPOSITORY@L}/${chart} |& tee helm-push-output.log chart_digest=$(awk -F "[, ]+" '/Digest/{print $NF}' < helm-push-output.log) # sign chart cosign sign "ghcr.io/${GITHUB_REPOSITORY@L}/${chart}@${chart_digest}"