From 646bf79dfc01ea0234f9b3fb558a560d44bede60 Mon Sep 17 00:00:00 2001 From: Ludovic Ortega Date: Thu, 19 Dec 2024 23:22:32 +0100 Subject: [PATCH] fix: release workflow, properly discover released tags Signed-off-by: Ludovic Ortega --- .github/workflows/releases.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 30cba03..501e085 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -35,10 +35,10 @@ jobs: chart=$(basename "$chart_path") # 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} + # get released tag + 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 @@ -77,6 +77,10 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Install helm + uses: azure/setup-helm@v4 + - name: Install Oras + uses: oras-project/setup-oras@v1 - name: Install Cosign uses: sigstore/cosign-installer@v3 - name: Downloads artifacts @@ -84,15 +88,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} |& 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}"