Skip to content

Commit 789fe8d

Browse files
committed
ci(release): safely replace acceptance evidence on retry
1 parent bf2ae1a commit 789fe8d

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

‎.github/workflows/publish.yml‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,17 @@ jobs:
9595
GH_TOKEN: ${{ github.token }}
9696
GH_REPO: ${{ github.repository }}
9797
RELEASE_TAG: ${{ github.event.release.tag_name }}
98-
run: gh release upload "$RELEASE_TAG" release/sdk-acceptance.tar.gz
98+
run: |
99+
if gh release view "$RELEASE_TAG" --json assets --jq '.assets[].name' | grep -Fxq sdk-acceptance.tar.gz; then
100+
mkdir previous
101+
gh release download "$RELEASE_TAG" --pattern sdk-acceptance.tar.gz --dir previous
102+
gh attestation verify previous/sdk-acceptance.tar.gz --repo "$GH_REPO" --signer-workflow "$GH_REPO/.github/workflows/publish.yml" --source-ref "refs/tags/$RELEASE_TAG" --source-digest "$GITHUB_SHA" --deny-self-hosted-runners
103+
# A retry may regenerate dependency locks, but must test identical SDK bytes.
104+
tar -xOf previous/sdk-acceptance.tar.gz ./acceptance.json | jq -S . > previous.json
105+
tar -xOf release/sdk-acceptance.tar.gz ./acceptance.json | jq -S . > current.json
106+
cmp previous.json current.json
107+
fi
108+
gh release upload "$RELEASE_TAG" release/sdk-acceptance.tar.gz --clobber
99109
100110
publish:
101111
needs: [build, attest]

0 commit comments

Comments
 (0)