diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a5e6b390d..aa3a83391 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -278,9 +278,9 @@ jobs: echo "Could not determine whether the Release already exists." >&2 exit 1 fi - args=("$TAG" --title "$TAG" --draft) + args=("$TAG" --target "$SOURCE_SHA" --title "$TAG" --draft) [[ "$PRERELEASE" != "true" ]] || args+=(--prerelease) - gh release create "${args[@]}" --notes-file "$release_notes" + gh release create "${args[@]}" --verify-tag --notes-file "$release_notes" verify_release_metadata "$(gh release view "$TAG" --json isDraft,isPrerelease,targetCommitish)" fi gh release edit "$TAG" --notes-file "$release_notes" diff --git a/package-lock.json b/package-lock.json index 1e0e87c53..ef1c2d2aa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@larksuite/cli", - "version": "1.0.79-beta.2", + "version": "1.0.79-beta.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@larksuite/cli", - "version": "1.0.79-beta.2", + "version": "1.0.79-beta.3", "cpu": [ "x64", "arm64", diff --git a/package.json b/package.json index 948dc08f4..7f177b6e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@larksuite/cli", - "version": "1.0.79-beta.2", + "version": "1.0.79-beta.3", "description": "The official CLI for Lark/Feishu open platform", "bin": { "lark-cli": "scripts/run.js" diff --git a/scripts/release-workflow.test.sh b/scripts/release-workflow.test.sh index 74738392c..b77fcffd2 100755 --- a/scripts/release-workflow.test.sh +++ b/scripts/release-workflow.test.sh @@ -154,7 +154,8 @@ draft_step = jobs.fetch("create-draft-release").fetch("steps").find { |step| ste draft_run = draft_step&.fetch("run", nil) fail("Draft Release creation must write generated release notes") unless draft_run&.include?("--notes-file") fail("Draft Release reuse must validate target commit and prerelease state") unless draft_run&.include?("targetCommitish") && draft_run.include?("isPrerelease") -fail("Draft Release creation must derive its target from the existing tag") if draft_run&.include?("--target") +fail("Draft Release creation must target the validated source commit") unless draft_run&.include?("--target \"$SOURCE_SHA\"") +fail("Draft Release creation must require the existing remote tag") unless draft_run&.include?("--verify-tag") github_steps = jobs.fetch("publish-github").fetch("steps") github_check = github_steps.find { |step| step["name"] == "Verify Draft assets match the candidate" }