From 4fdb314d9a0e44e410f7f2014a8a2c8a529ff299 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 14 Jul 2026 00:20:59 +0100 Subject: [PATCH] fix(release): normalize Windows checksum manifests --- .github/workflows/openclaw-stable-main-closeout.yml | 9 ++++++--- test/scripts/package-acceptance-workflow.test.ts | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/openclaw-stable-main-closeout.yml b/.github/workflows/openclaw-stable-main-closeout.yml index 51ec75c26ad8..f7822bd97bf8 100644 --- a/.github/workflows/openclaw-stable-main-closeout.yml +++ b/.github/workflows/openclaw-stable-main-closeout.yml @@ -619,15 +619,18 @@ jobs: ( cd "$recovery_dir" verify_checksum_manifest() { - local manifest="$1" actual expected + local manifest="$1" actual expected normalized shift + normalized="${manifest}.normalized" + sed 's/\r$//' "$manifest" > "$normalized" expected="$(printf '%s\n' "$@" | LC_ALL=C sort)" - actual="$(awk 'NF { name=$2; sub(/^\*/, "", name); print name }' "$manifest" | LC_ALL=C sort)" + actual="$(awk 'NF { name=$2; sub(/^\*/, "", name); print name }' "$normalized" | LC_ALL=C sort)" if [[ "$actual" != "$expected" ]]; then echo "$manifest must list exactly: $*" >&2 exit 1 fi - sha256sum --strict --check "$manifest" + sha256sum --strict --check "$normalized" + rm -f "$normalized" } verify_checksum_manifest OpenClaw-Android-SHA256SUMS.txt \ OpenClaw-Android.apk diff --git a/test/scripts/package-acceptance-workflow.test.ts b/test/scripts/package-acceptance-workflow.test.ts index 3fe0f3d6def1..a9bd1da87d2c 100644 --- a/test/scripts/package-acceptance-workflow.test.ts +++ b/test/scripts/package-acceptance-workflow.test.ts @@ -508,6 +508,8 @@ describe("package acceptance workflow", () => { expect(workflow).toContain("actual=\"$(awk 'NF { name=$2;"); expect(workflow).toContain('sub(/^\\*/, "", name)'); expect(workflow).not.toContain('sub(/^\\\\*/, "", name)'); + expect(workflow).toContain('sed \'s/\\r$//\' "$manifest" > "$normalized"'); + expect(workflow).toContain('sha256sum --strict --check "$normalized"'); expect(workflow).toContain( "Windows Node Release must contain one successful signed-installer promotion job.", );