diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5ded1b6..da1e143 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,11 +62,14 @@ jobs: short-sha: ${{ steps.infos.outputs.SHORT_SHA }} platforms-json: ${{ steps.infos.outputs.PLATFORMS_JSON }} steps: + - name: Checks-out repository + uses: actions/checkout@v4 + - name: Get variables id: infos run: | echo "SHORT_SHA=sha-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - echo "PLATFORMS_JSON=$(echo "$PLATFORMS"| jq -c 'split(",")')" >> $GITHUB_OUTPUT + echo "PLATFORMS_JSON=$(echo '"${{ inputs.PLATFORMS }}"' | jq -c 'split(",")')" >> $GITHUB_OUTPUT build-binaries: name: Build application binaries @@ -75,7 +78,7 @@ jobs: - vars strategy: matrix: - platforms: ${{ needs.vars.outputs.platforms-json }} + platforms: ${{ fromJson(needs.vars.outputs.platforms-json) }} steps: - name: Checks-out repository uses: actions/checkout@v4 @@ -93,17 +96,20 @@ jobs: - name: Run build run: | - BUILD_OS=$(echo ${{ matrix.platforms }} | cut -d '/' -f 1) - BUILD_ARCH=$(echo ${{ matrix.platforms }} | cut -d '/' -f 2,3) + export BUILD_OS="$(echo ${{ matrix.platforms }} | cut -d '/' -f 1)" + export BUILD_ARCH="$(echo ${{ matrix.platforms }} | cut -d '/' -f 2,3)" + + echo "BUILD_OS=$BUILD_OS" >> $GITHUB_ENV + echo "BUILD_ARCH=$BUILD_ARCH" >> $GITHUB_ENV CGO_ENABLED=0 GOOS=${BUILD_OS} GOARCH=${BUILD_ARCH} \ go build -o ./binaries/external-dns-midaas-webhook_${BUILD_OS}-${BUILD_ARCH} . - - name: Upload test results + - name: Upload build results uses: actions/upload-artifact@v4 with: - name: external-dns-midaas-webhook_${BUILD_OS}-${BUILD_ARCH} - path: ./binaries/external-dns-midaas-webhook_${BUILD_OS}-${BUILD_ARCH} + name: external-dns-midaas-webhook_${{ env.BUILD_OS }}-${{ env.BUILD_ARCH }} + path: ./binaries/external-dns-midaas-webhook_${{ env.BUILD_OS }}-${{ env.BUILD_ARCH }} build-docker: name: Build application image diff --git a/.github/workflows/cache.yml b/.github/workflows/cache.yml index daaaab9..4008952 100644 --- a/.github/workflows/cache.yml +++ b/.github/workflows/cache.yml @@ -14,6 +14,10 @@ on: description: Branch name assiocited with the cache required: false type: string + COMMIT_SHA: + description: Commit sha assiocited with the cache + required: false + type: string permissions: packages: write @@ -68,5 +72,6 @@ jobs: ./ci/scripts/delete-image.sh \ -o "${{ steps.image-infos.outputs.ORG_NAME }}" \ -i "${{ steps.image-infos.outputs.REPO_NAME }}" \ - -t "pr-${{ inputs.PR_NUMBER || github.event.pull_request.number || github.event.number }}" \ + -t "pr-${{ inputs.PR_NUMBER || inputs.COMMIT_SHA || github.event.pull_request.number || github.event.number }}" \ + -t "${{ inputs.COMMIT_SHA && format('sha-{0}', inputs.COMMIT_SHA) || format('pr-{0}', inputs.PR_NUMBER || inputs.COMMIT_SHA || github.event.pull_request.number || github.event.number) }}" \ -g "${{ secrets.GITHUB_TOKEN }}" diff --git a/ci/scripts/delete-image.sh b/ci/scripts/delete-image.sh index 26a8591..9e40260 100755 --- a/ci/scripts/delete-image.sh +++ b/ci/scripts/delete-image.sh @@ -76,7 +76,7 @@ IMAGE_NAME_URL_ENCODED="$(jq -rn --arg x ${IMAGE_NAME} '$x | @uri')" IMAGES=$(curl -s \ -H "Authorization: Bearer ${GITHUB_TOKEN}" \ "https://api.github.com/users/${ORG}/packages/container/${IMAGE_NAME_URL_ENCODED}/versions?per_page=100") -MAIN_IMAGE_ID=$(echo "$IMAGES" | jq -r --arg t "$TAG" '.[] | select(.labels["org.opencontainers.image.version"] == $t) | .id') +MAIN_IMAGE_ID=$(echo "$IMAGES" | jq -r --arg t "$TAG" '.[] | select(.metadata.container.tags[] | contains($t)) | .id') # Delete subsequent images while read -r SHA; do @@ -87,7 +87,7 @@ while read -r SHA; do curl -s \ -X DELETE \ -H "Authorization: Bearer ${GITHUB_TOKEN}" \ - "https://api.github.com/user/${ORG}/packages/container/${IMAGE_NAME_URL_ENCODED}/versions/${IMAGE_ID}" + "https://api.github.com/users/${ORG}/packages/container/${IMAGE_NAME_URL_ENCODED}/versions/${IMAGE_ID}" done <<< "$(docker buildx imagetools inspect ghcr.io/${ORG}/${IMAGE_NAME}:${TAG} --raw | jq -r '.manifests[] | .digest')" # Delete main image @@ -96,4 +96,4 @@ printf "\n${red}[Delete ghcr image].${no_color} Deleting image '$ORG/$IMAGE_NAME curl -s \ -X DELETE \ -H "Authorization: Bearer ${GITHUB_TOKEN}" \ - "https://api.github.com/user/${ORG}/packages/container/${IMAGE_NAME_URL_ENCODED}/versions/${MAIN_IMAGE_ID}" + "https://api.github.com/users/${ORG}/packages/container/${IMAGE_NAME_URL_ENCODED}/versions/${MAIN_IMAGE_ID}"