diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 9887966..42ba0dc 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -71,8 +71,18 @@ jobs: exit 0 fi - pr_number="$(jq -er '.number' <<<"${RELEASE_PR}")" - branch="$(jq -er '.head_branch' <<<"${RELEASE_PR}")" + pr_count="$(jq -er '.prs | length' <<<"${RELEASE_PR}")" + if [ "${pr_count}" -eq 0 ]; then + echo "No Rust release changes to prepare" + exit 0 + fi + if [ "${pr_count}" -ne 1 ]; then + echo "::error::Expected one version-grouped Release PR, got ${pr_count}" + exit 2 + fi + + pr_number="$(jq -er '.prs[0].number' <<<"${RELEASE_PR}")" + branch="$(jq -er '.prs[0].head_branch' <<<"${RELEASE_PR}")" gh pr checkout "${pr_number}" --force python3 tools/sync_release_docs.py diff --git a/tools/check_ci_contracts.py b/tools/check_ci_contracts.py index 1b8057f..ab894cf 100644 --- a/tools/check_ci_contracts.py +++ b/tools/check_ci_contracts.py @@ -215,6 +215,10 @@ def main() -> int: "--manifest-path rust/Cargo.toml", "release-plz-v0.3.160", "2263c4f95eac1513da96a114a77fde20ea038742a8c8050f7514b8f93b828646", + "pr_count=\"$(jq -er '.prs | length'", + "pr_number=\"$(jq -er '.prs[0].number'", + "branch=\"$(jq -er '.prs[0].head_branch'", + "Expected one version-grouped Release PR", "python3 tools/sync_release_docs.py", "gh workflow run ci.yml", "gh workflow run docs.yml",