From baa1e38b7dd343652dc02bcf0f4aa6d97fcfcc45 Mon Sep 17 00:00:00 2001 From: Simon Jackson Date: Thu, 2 Apr 2026 21:00:21 +0100 Subject: [PATCH 1/2] fix(ci): use 2-digit year for MSI PackageVersion (MSI major must be <256) WiX ICE24 rejects '2026.4.2' because MSI requires major<256 and 2026>255. Derive msiVer by stripping the century prefix: '2026.4.2' -> '26.4.2'. The full yyyy.M.d version is still used for release tag names and file names. --- .github/workflows/build-and-release.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 253c358..2fdd979 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -439,7 +439,9 @@ jobs: - name: Build MSI packages shell: pwsh run: | - $ver = '${{ steps.build_ver.outputs.version }}' + $ver = '${{ steps.build_ver.outputs.version }}' + # MSI ProductVersion requires major<256; strip century: "2026.4.2" -> "26.4.2" + $msiVer = $ver.Substring(2) foreach ($arch in @('x64', 'x86', 'arm64')) { # Stage arch-specific inputs next to the .wixproj Copy-Item ".\rdpwrap_$arch.dll" "msi\rdpwrap_$arch.dll" -Force @@ -451,7 +453,7 @@ jobs: -c Release ` /p:Platform=$arch ` /p:OutputName="RDPWrapper-$arch" ` - /p:PackageVersion=$ver ` + /p:PackageVersion=$msiVer ` /p:OutputPath="$PWD/msi_out/$arch" if ($LASTEXITCODE -ne 0) { throw "WiX build failed for $arch" } From 77b02a716dbba018fd93557e69f45b273aacd5ab Mon Sep 17 00:00:00 2001 From: Simon Jackson Date: Thu, 2 Apr 2026 21:07:50 +0100 Subject: [PATCH 2/2] fix(ci): branch-scoped concurrency group and remove workflow self-trigger - concurrency.group: 'release' -> github.workflow + github.ref_name Fixed group name caused any two runs to queue against each other regardless of branch. A manual dispatch would wait behind a failed push-triggered run. - Remove '.github/workflows/build-and-release.yml' from push path filters Merging a workflow-fix PR was auto-triggering a full release build every time. Release builds should only fire on source/INI changes or manual dispatch. --- .github/workflows/build-and-release.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 2fdd979..0479973 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -9,7 +9,6 @@ on: - 'msi/**' - 'src-x86-x64-Fusix/**' - 'src-csharp/**' - - '.github/workflows/build-and-release.yml' workflow_dispatch: inputs: tag: @@ -23,7 +22,7 @@ on: default: false concurrency: - group: release + group: ${{ github.workflow }}-${{ github.ref_name }} cancel-in-progress: true env: