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.
This commit is contained in:
rcourtman 2025-11-11 22:54:37 +00:00
parent 9f7c9aea95
commit 5fa78c3e36

View file

@ -69,42 +69,42 @@ jobs:
INPUT_DRAFT: ${{ inputs.draft }} INPUT_DRAFT: ${{ inputs.draft }}
INPUT_COMMIT: ${{ inputs.target_commitish }} INPUT_COMMIT: ${{ inputs.target_commitish }}
run: | run: |
python <<'PY' > context.env python3 <<'EOF' > context.env
import json, os, sys import json, os, sys
event_name = os.environ.get("EVENT_NAME", "") event_name = os.environ.get("EVENT_NAME", "")
result = {} result = {}
if event_name == "release": if event_name == "release":
with open(os.environ["GITHUB_EVENT_PATH"], "r", encoding="utf-8") as handle: with open(os.environ["GITHUB_EVENT_PATH"], "r", encoding="utf-8") as handle:
data = json.load(handle) data = json.load(handle)
release = data.get("release") or {} release = data.get("release") or {}
result["tag"] = release.get("tag_name", "") result["tag"] = release.get("tag_name", "")
tag = result["tag"] tag = result["tag"]
result["version"] = tag[1:] if tag.startswith("v") else tag result["version"] = tag[1:] if tag.startswith("v") else tag
result["release_id"] = str(release.get("id", "")) result["release_id"] = str(release.get("id", ""))
result["target_commitish"] = release.get("target_commitish", "") result["target_commitish"] = release.get("target_commitish", "")
result["draft"] = str(release.get("draft", False)).lower() result["draft"] = str(release.get("draft", False)).lower()
else: else:
result["tag"] = os.environ.get("INPUT_TAG", "") result["tag"] = os.environ.get("INPUT_TAG", "")
result["version"] = os.environ.get("INPUT_VERSION", "") result["version"] = os.environ.get("INPUT_VERSION", "")
result["release_id"] = os.environ.get("INPUT_RELEASE_ID", "") result["release_id"] = os.environ.get("INPUT_RELEASE_ID", "")
result["target_commitish"] = os.environ.get("INPUT_COMMIT", "") result["target_commitish"] = os.environ.get("INPUT_COMMIT", "")
draft_value = os.environ.get("INPUT_DRAFT", "false") draft_value = os.environ.get("INPUT_DRAFT", "false")
result["draft"] = str(draft_value).lower() result["draft"] = str(draft_value).lower()
if not result["tag"] or not result["release_id"]: 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.stderr.write("::error::Release metadata is missing. Provide tag, version, release_id, and target_commitish.\n")
sys.exit(1) sys.exit(1)
should_run = "true" should_run = "true"
if event_name == "release" and result["draft"] != "true": if event_name == "release" and result["draft"] != "true":
should_run = "false" should_run = "false"
result["should_run"] = should_run result["should_run"] = should_run
for key, value in result.items(): for key, value in result.items():
print(f"{key}={value}") print(f"{key}={value}")
PY EOF
cat context.env >> "$GITHUB_OUTPUT" cat context.env >> "$GITHUB_OUTPUT"
cat context.env cat context.env