diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 71ddef87faa..8bb1a70f2d9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -180,6 +180,9 @@ jobs: runs-on: ubuntu-latest needs: [build-amd64, build-arm64, build-arm, build-airgap] steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Read Prime artifacts secrets uses: rancher-eio/read-vault-secrets@main with: @@ -204,6 +207,7 @@ jobs: - name: "Combine and format sha256sum files" run: | + cp scripts/airgap/image-list.txt dist/artifacts/k3s-images.txt for ARCH in amd64 arm64 arm; do OUTPUT_FILE="./dist/artifacts/sha256sum-${ARCH}.txt" cat ./dist/artifacts/k3s-airgap-images-${ARCH}*.sha256sum >> "${OUTPUT_FILE}" @@ -216,6 +220,10 @@ jobs: rm ./dist/artifacts/k3s-${ARCH}.sha256sum # Remove the original file to avoid uploading it fi done + + - name: Validate Assets for Release + run: | + ./scripts/validate-artifacts - name: Upload Assets to Release uses: softprops/action-gh-release@v2.2.1 diff --git a/scripts/validate-artifacts b/scripts/validate-artifacts new file mode 100755 index 00000000000..b334e4c270e --- /dev/null +++ b/scripts/validate-artifacts @@ -0,0 +1,37 @@ +#!/usr/bin/env bash + +set -e +shopt -s nullglob + +EXPECTED_ARTIFACTS=( + dist/artifacts/k3s + dist/artifacts/k3s-airgap-images-amd64.tar + dist/artifacts/k3s-airgap-images-amd64.tar.gz + dist/artifacts/k3s-airgap-images-amd64.tar.zst + dist/artifacts/k3s-airgap-images-arm.tar + dist/artifacts/k3s-airgap-images-arm.tar.gz + dist/artifacts/k3s-airgap-images-arm.tar.zst + dist/artifacts/k3s-airgap-images-arm64.tar + dist/artifacts/k3s-airgap-images-arm64.tar.gz + dist/artifacts/k3s-airgap-images-arm64.tar.zst + dist/artifacts/k3s-arm64 + dist/artifacts/k3s-armhf + dist/artifacts/k3s-images.txt + dist/artifacts/sha256sum-amd64.txt + dist/artifacts/sha256sum-arm.txt + dist/artifacts/sha256sum-arm64.txt +) + +CURRENT_ARTIFACTS=( + dist/artifacts/k3s* + dist/artifacts/sha256sum* +) + +UNEXPECTED=$(IFS=$'\n'; comm -13 /dev/fd/4 /dev/fd/5 4<<<"${EXPECTED_ARTIFACTS[*]}" 5<<<"${CURRENT_ARTIFACTS[*]}") +MISSING=$(IFS=$'\n'; comm -23 /dev/fd/4 /dev/fd/5 4<<<"${EXPECTED_ARTIFACTS[*]}" 5<<<"${CURRENT_ARTIFACTS[*]}") + +if [[ -n "${UNEXPECTED}" ]] || [[ -n "${MISSING}" ]]; then + echo "Unexpected Files: " ${UNEXPECTED} + echo "Missing Files: " ${MISSING} + exit 1 +fi