diff --git a/.github/workflows/build-loremaster.yml b/.github/workflows/build-loremaster.yml index cc7b602..6ca9d68 100644 --- a/.github/workflows/build-loremaster.yml +++ b/.github/workflows/build-loremaster.yml @@ -590,7 +590,11 @@ jobs: } else { "Loremaster-$version-x86_64.AppImage" } - $changelog = python tools/release_notes.py --version $tag + # -join, because PowerShell captures multi-line command output as an + # Object[]. Embedded as one element of the $notes array it stringified + # to "System.Object[]", which is what shipped in place of the changelog + # on every release whose entry spans more than one line. + $changelog = (python tools/release_notes.py --version $tag) -join "`n" if ($LASTEXITCODE -ne 0) { throw "no changelog entry for $tag" } $notes = @() if ($prerelease) { diff --git a/tools/release_quality_gate.py b/tools/release_quality_gate.py index 4542979..09f4abe 100644 --- a/tools/release_quality_gate.py +++ b/tools/release_quality_gate.py @@ -349,6 +349,8 @@ def check_loremaster_release_pipeline() -> None: "actions/download-artifact@v6", "electron-builder --win portable --x64 --publish never", "-c.extraMetadata.version=$version", + # The changelog reaches the notes as text, not as "System.Object[]". + '$changelog = (python tools/release_notes.py --version $tag) -join "`n"', ) missing = [value for value in required if value not in workflow] if missing: