diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2792f73cc9..06de87a79c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -301,7 +301,7 @@ jobs: dist/redrob-windows-x64/bin/redrob.exe dist/redrob-windows-x64-baseline/bin/redrob.exe REDROB_WINDOWS_INSTALLER: >- - dist/redrob-code-x64-setup.exe + dist/redrob-code-${{ needs.version.outputs.version }}-windows-x64-setup.exe dist/redrob-code-${{ needs.version.outputs.version }}-windows-x64.msi dist/redrob-code-${{ needs.version.outputs.version }}-windows-arm64.msi steps: @@ -368,7 +368,7 @@ jobs: "/O${{ github.workspace }}\dist" ` "${{ github.workspace }}\installer\windows\redrob-code.iss" if ($LASTEXITCODE -ne 0) { throw "ISCC failed with $LASTEXITCODE" } - $setup = "${{ github.workspace }}\dist\redrob-code-x64-setup.exe" + $setup = "${{ github.workspace }}\dist\redrob-code-${{ needs.version.outputs.version }}-windows-x64-setup.exe" if (-not (Test-Path $setup)) { throw "the installer was not produced at $setup" } Write-Host "built $((Get-Item $setup).Length) bytes" @@ -430,7 +430,7 @@ jobs: name: release-windows path: | dist/redrob-windows-*.zip - dist/redrob-code-x64-setup.exe + dist/redrob-code-${{ needs.version.outputs.version }}-windows-x64-setup.exe dist/redrob-code-*-windows-*.msi if-no-files-found: error diff --git a/installer/windows/redrob-code.iss b/installer/windows/redrob-code.iss index 231a05a2fa..96470b0b95 100644 --- a/installer/windows/redrob-code.iss +++ b/installer/windows/redrob-code.iss @@ -1,6 +1,6 @@ ; Redrob Code Windows installer. ; -; Produces `redrob-code-x64-setup.exe`: a click-to-run installer, so Windows is not the one +; Produces `redrob-code--windows-x64-setup.exe`: a click-to-run installer, so Windows is not the one ; platform where the only way in is to paste a PowerShell one-liner. That asymmetry is what this ; exists to remove -- kiro.dev hands a Windows user a signed .exe, and until now this project ; handed them a `curl` command and an archive whose name did not even exist in the release. @@ -60,7 +60,10 @@ UninstallDisplayName=Redrob Code UninstallFilesDir={localappdata}\Redrob\uninstall OutputDir=. -OutputBaseFilename=redrob-code-x64-setup +; `----setup`: the asset-name convention Redrob Launcher parses +; (`redrob-code-0.6.8-windows-x64-setup.exe`), so a Windows user and the launcher see the same +; version in the file name as in the release tag. +OutputBaseFilename=redrob-code-{#AppVersion}-windows-x64-setup Compression=lzma2/max SolidCompression=yes WizardStyle=modern diff --git a/packages/redrob/src/installation/index.ts b/packages/redrob/src/installation/index.ts index dcf3bf9ab7..dc847f8423 100644 --- a/packages/redrob/src/installation/index.ts +++ b/packages/redrob/src/installation/index.ts @@ -131,7 +131,7 @@ export function isCurlInstall(execPath: string) { * directory deliberately, so recognising it is a location check like `isCurlInstall`'s rather than * a guess. It is a separate method because the two are not interchangeable at upgrade time: a * curl install is replaced by re-running `install.sh`, while this one is replaced by running the - * next `redrob-code-x64-setup.exe`, and an in-place overwrite of a running `.exe` is not something + * next `redrob-code--windows-x64-setup.exe`, and an in-place overwrite of a running `.exe` is not something * Windows permits anyway. * * Without this the installer's own binary answers `unknown`, which refuses to upgrade at all -- so @@ -256,7 +256,7 @@ const layer: Layer.Layer { for (const bad of [ "redrob-linux-x64.tar.gz", // no version, stem `redrob` "redrob-darwin-arm64.zip", - "redrob-code-x64-setup.exe", // the launcher does not install an exe + "redrob-code-0.5.1-windows-x64-setup.exe", // the launcher does not install an exe "redrob-code-v0.5.1-linux-x86_64.tar.gz", // leading v "redrob-code-0.5.1-linux-x64.tar.gz", // x64 is not a linux token "redrob-code-0.5.1-linux-amd64.tar.gz", diff --git a/packages/redrob/test/installation/windows-installer.test.ts b/packages/redrob/test/installation/windows-installer.test.ts index 2ecfbd856e..06a2536bc7 100644 --- a/packages/redrob/test/installation/windows-installer.test.ts +++ b/packages/redrob/test/installation/windows-installer.test.ts @@ -54,6 +54,6 @@ describe("the Windows installer definition", () => { }) test("produces the asset name the release and the console both expect", () => { - expect(definition).toContain("OutputBaseFilename=redrob-code-x64-setup") + expect(definition).toContain("OutputBaseFilename=redrob-code-{#AppVersion}-windows-x64-setup") }) })