From 5171383a1fc441b3b6bce8a3d0e7b235325a4719 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Fri, 17 Apr 2026 09:02:36 -0700 Subject: [PATCH 1/4] Modernize release workflow runners - Use blacksmith Windows and Ubuntu release runners - Install Spectre-mitigated MSVC libs for Windows builds - Set up Bun and install deps before publishing - Co-authored-by: codex --- .github/workflows/release.yml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ebfc26d8ba..5334024f26 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -156,7 +156,7 @@ jobs: target: AppImage arch: x64 - label: Windows x64 - runner: windows-2022 # blacksmith-32vcpu-windows-2025 + runner: blacksmith-32vcpu-windows-2025 platform: win target: nsis arch: x64 @@ -188,6 +188,18 @@ jobs: - name: Align package versions to release version run: node scripts/update-release-package-versions.ts "${{ needs.preflight.outputs.version }}" + - name: Install Spectre-mitigated MSVC libs + if: matrix.platform == 'win' + shell: bash + run: | + vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" + installPath = & $vswhere -products * -latest -property installationPath + setupExe = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe" + Start-Process -FilePath $setupExe ` + -ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", ` + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64.Spectre", "--quiet", "--norestart" ` + -Wait -PassThru -NoNewWindow + - name: Build desktop artifact shell: bash env: @@ -333,7 +345,7 @@ jobs: release: name: Publish GitHub Release needs: [preflight, build, publish_cli] - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 # blacksmith-8vcpu-ubuntu-2404 timeout-minutes: 10 steps: - name: Checkout @@ -341,11 +353,19 @@ jobs: with: ref: ${{ needs.preflight.outputs.ref }} + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version-file: package.json + - name: Setup Node uses: actions/setup-node@v6 with: node-version-file: package.json + - name: Install dependencies + run: bun install --frozen-lockfile + - name: Download all desktop artifacts uses: actions/download-artifact@v8 with: From 926d98b3f7fe36fdf9032714edd573782baf0237 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Fri, 17 Apr 2026 09:04:47 -0700 Subject: [PATCH 2/4] pwsh --- .github/workflows/release.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5334024f26..70e50f2621 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -190,15 +190,15 @@ jobs: - name: Install Spectre-mitigated MSVC libs if: matrix.platform == 'win' - shell: bash + shell: pwsh run: | - vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" - installPath = & $vswhere -products * -latest -property installationPath - setupExe = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe" - Start-Process -FilePath $setupExe ` - -ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", ` - "Microsoft.VisualStudio.Component.VC.Tools.x86.x64.Spectre", "--quiet", "--norestart" ` - -Wait -PassThru -NoNewWindow + $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" + $installPath = & $vswhere -products * -latest -property installationPath + $setupExe = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe" + Start-Process -FilePath $setupExe ` + -ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", ` + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64.Spectre", "--quiet", "--norestart" ` + -Wait -PassThru -NoNewWindow - name: Build desktop artifact shell: bash From 40ed71f03f476d72241a9690e8d88c204d7ead30 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Fri, 17 Apr 2026 09:15:34 -0700 Subject: [PATCH 3/4] Fix Windows release workflow line continuation - Repair PowerShell argument wrapping in the release job - Preserve Spectre tool installation step Co-authored-by: codex --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 70e50f2621..0fe3c3a164 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -195,8 +195,8 @@ jobs: $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" $installPath = & $vswhere -products * -latest -property installationPath $setupExe = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe" - Start-Process -FilePath $setupExe ` - -ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", ` + Start-Process -FilePath $setupExe ` + -ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", ` "Microsoft.VisualStudio.Component.VC.Tools.x86.x64.Spectre", "--quiet", "--norestart" ` -Wait -PassThru -NoNewWindow From ba2c1cb0f38e1c6b0790d9c1e03c7dad79a76646 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Fri, 17 Apr 2026 16:19:33 +0000 Subject: [PATCH 4/4] fix: check installer exit code in Spectre-mitigated MSVC libs step Capture the Start-Process return value and check the exit code so that installer failures surface immediately instead of being silently ignored. Applied via @cursor push command --- .github/workflows/release.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0fe3c3a164..a1b3e72061 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -195,10 +195,15 @@ jobs: $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" $installPath = & $vswhere -products * -latest -property installationPath $setupExe = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\setup.exe" - Start-Process -FilePath $setupExe ` + $proc = Start-Process -FilePath $setupExe ` -ArgumentList "modify", "--installPath", "`"$installPath`"", "--add", ` "Microsoft.VisualStudio.Component.VC.Tools.x86.x64.Spectre", "--quiet", "--norestart" ` -Wait -PassThru -NoNewWindow + if ($null -eq $proc -or $proc.ExitCode -ne 0) { + $code = if ($null -ne $proc) { $proc.ExitCode } else { 1 } + Write-Error "Visual Studio Installer failed with exit code $code" + exit $code + } - name: Build desktop artifact shell: bash