diff --git a/VERSION b/VERSION index 04e84f8..45a346d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.10 +0.6.11 diff --git a/actions/release-post-merge/action.yml b/actions/release-post-merge/action.yml index b07ea36..78d5ace 100644 --- a/actions/release-post-merge/action.yml +++ b/actions/release-post-merge/action.yml @@ -200,6 +200,7 @@ runs: PREPARED_RELEASE_ID: ${{ steps.finalize.outputs.prepared-release-id }} run: | set -euo pipefail + set +e php "${RELEASE_TOOL_PATH}" release:draft \ --prepared "${RELEASE_STATE_DIR}/prepared-release.json" \ --milestone "${RELEASE_STATE_DIR}/milestone-transition.json" \ @@ -207,6 +208,12 @@ runs: --root . \ --json \ > "${RELEASE_STATE_DIR}/release-draft.json" + status=$? + set -e + if [[ "${status}" -ne 0 ]]; then + cat "${RELEASE_STATE_DIR}/release-draft.json" || true + exit "${status}" + fi draft_id="$(php -r '$d=json_decode(file_get_contents($argv[1]),true,512,JSON_THROW_ON_ERROR); echo $d["id"];' "${RELEASE_STATE_DIR}/release-draft.json")" release_id="$(php -r '$d=json_decode(file_get_contents($argv[1]),true,512,JSON_THROW_ON_ERROR); echo $d["github_release"]["id"];' "${RELEASE_STATE_DIR}/release-draft.json")" diff --git a/actions/release-tool-setup/release-tool-version b/actions/release-tool-setup/release-tool-version index 9b40aa6..9028ec6 100644 --- a/actions/release-tool-setup/release-tool-version +++ b/actions/release-tool-setup/release-tool-version @@ -1 +1 @@ -0.10.4 +0.10.5 diff --git a/tests/test_release_post_merge_action.py b/tests/test_release_post_merge_action.py index f42d356..4c502d9 100644 --- a/tests/test_release_post_merge_action.py +++ b/tests/test_release_post_merge_action.py @@ -38,6 +38,13 @@ def test_mutating_stages_use_scoped_tokens(self) -> None: self.assertIn("permission-pull-requests: read", content) self.assertIn("GITHUB_TOKEN: ${{ inputs.github-token }}", content) + def test_release_draft_errors_are_exposed(self) -> None: + content = ACTION.read_text(encoding="utf-8") + draft = content.index("Create or update GitHub Release draft") + tail = content[draft:] + self.assertIn('status=$?', tail) + self.assertIn('cat "${RELEASE_STATE_DIR}/release-draft.json" || true', tail) + def test_contract_chain_is_persisted_for_publication(self) -> None: content = ACTION.read_text(encoding="utf-8") self.assertIn("release:finalize", content)