From 1ad70a210a9aafb3134256e3105758c10164b7f6 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Fri, 22 May 2026 18:09:59 -0400 Subject: [PATCH] =?UTF-8?q?Windows=20CI:=20fix=20YAML=20break=20=E2=80=94?= =?UTF-8?q?=20replace=20SFX-config=20heredoc=20with=20printf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous commit's bash heredoc for the 7-Zip SFX config: cat > sfx-config.txt <<'SFXCFG' ;!@Install@!UTF-8! ... SFXCFG …had its body at the left margin (since heredoc lines are taken literally). But the surrounding YAML used `run: |` which requires every line to be indented more than the `run:` key. The unindented heredoc body broke out of the block scalar — Gitea Actions rejected the workflow with "could not find expected ':'" at the ;!@Install line. Switch to a single `printf '...' > sfx-config.txt` line that fits cleanly inside the YAML block. Same on-disk file content, no YAML indentation conflict. --- .github/workflows/build-windows.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index 094dfdd49..691d2aea7 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -355,14 +355,9 @@ jobs: # 2. SFX config — runtime behavior of the wrapper .exe. # RunProgram is what fires after extraction. HashWallet is the # BINARY_NAME baked into windows/CMakeLists.txt. - cat > sfx-config.txt <<'SFXCFG' -;!@Install@!UTF-8! -Title="Hash Bags" -BeginPrompt="" -Progress="yes" -RunProgram="HashWallet.exe" -;!@InstallEnd@! -SFXCFG + # Using printf instead of a heredoc because bash heredoc bodies + # have no indentation and break out of YAML's `run: |` block. + printf ';!@Install@!UTF-8!\nTitle="Hash Bags"\nBeginPrompt=""\nProgress="yes"\nRunProgram="HashWallet.exe"\n;!@InstallEnd@!\n' > sfx-config.txt # 3. Concatenate SFX module + config + payload → final .exe. # Identical to the Windows "copy /b a + b + c" idiom; cat works