From 5fa78c3e364d7fdd143c6a2a41edcec5d89559d7 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Tue, 11 Nov 2025 22:54:37 +0000 Subject: [PATCH] Fix YAML syntax error in validate-release-assets workflow The Python heredoc was not indented, causing YAML parsers to interpret the Python code as YAML syntax. This caused workflow_dispatch runs to fail instantly with 'workflow file issue' error before any jobs could start. The fix indents the heredoc content and changes delimiter from 'PY' to 'EOF' to match standard conventions. --- .github/workflows/validate-release-assets.yml | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/workflows/validate-release-assets.yml b/.github/workflows/validate-release-assets.yml index 6b6ac9f..2b6b861 100644 --- a/.github/workflows/validate-release-assets.yml +++ b/.github/workflows/validate-release-assets.yml @@ -69,42 +69,42 @@ jobs: INPUT_DRAFT: ${{ inputs.draft }} INPUT_COMMIT: ${{ inputs.target_commitish }} run: | - python <<'PY' > context.env -import json, os, sys + python3 <<'EOF' > context.env + import json, os, sys -event_name = os.environ.get("EVENT_NAME", "") -result = {} + event_name = os.environ.get("EVENT_NAME", "") + result = {} -if event_name == "release": - with open(os.environ["GITHUB_EVENT_PATH"], "r", encoding="utf-8") as handle: - data = json.load(handle) - release = data.get("release") or {} - result["tag"] = release.get("tag_name", "") - tag = result["tag"] - result["version"] = tag[1:] if tag.startswith("v") else tag - result["release_id"] = str(release.get("id", "")) - result["target_commitish"] = release.get("target_commitish", "") - result["draft"] = str(release.get("draft", False)).lower() -else: - result["tag"] = os.environ.get("INPUT_TAG", "") - result["version"] = os.environ.get("INPUT_VERSION", "") - result["release_id"] = os.environ.get("INPUT_RELEASE_ID", "") - result["target_commitish"] = os.environ.get("INPUT_COMMIT", "") - draft_value = os.environ.get("INPUT_DRAFT", "false") - result["draft"] = str(draft_value).lower() + if event_name == "release": + with open(os.environ["GITHUB_EVENT_PATH"], "r", encoding="utf-8") as handle: + data = json.load(handle) + release = data.get("release") or {} + result["tag"] = release.get("tag_name", "") + tag = result["tag"] + result["version"] = tag[1:] if tag.startswith("v") else tag + result["release_id"] = str(release.get("id", "")) + result["target_commitish"] = release.get("target_commitish", "") + result["draft"] = str(release.get("draft", False)).lower() + else: + result["tag"] = os.environ.get("INPUT_TAG", "") + result["version"] = os.environ.get("INPUT_VERSION", "") + result["release_id"] = os.environ.get("INPUT_RELEASE_ID", "") + result["target_commitish"] = os.environ.get("INPUT_COMMIT", "") + draft_value = os.environ.get("INPUT_DRAFT", "false") + result["draft"] = str(draft_value).lower() -if not result["tag"] or not result["release_id"]: - sys.stderr.write("::error::Release metadata is missing. Provide tag, version, release_id, and target_commitish.\n") - sys.exit(1) + if not result["tag"] or not result["release_id"]: + sys.stderr.write("::error::Release metadata is missing. Provide tag, version, release_id, and target_commitish.\n") + sys.exit(1) -should_run = "true" -if event_name == "release" and result["draft"] != "true": - should_run = "false" -result["should_run"] = should_run + should_run = "true" + if event_name == "release" and result["draft"] != "true": + should_run = "false" + result["should_run"] = should_run -for key, value in result.items(): - print(f"{key}={value}") -PY + for key, value in result.items(): + print(f"{key}={value}") + EOF cat context.env >> "$GITHUB_OUTPUT" cat context.env