diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f2d18946..3b44d7d9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -166,6 +166,28 @@ jobs: xcrun stapler staple "$dmg" gh release upload "$TAG" "$dmg" --clobber done + # Portable Windows builds (#1857): on Windows Tauri embeds the + # frontend in the exe and WebView2 is a system component, so zipping + # the raw exe gives an unpack-and-run alternative to the installers. + - name: Portable zip + if: runner.os == 'Windows' + shell: pwsh + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + $target = "${{ matrix.target }}" + $arch = if ($target -like "x86_64*") { "x64" } else { "arm64" } + $version = $env:TAG -replace '^v', '' + $asset = "OpenIDEA_${version}_windows_${arch}_portable.zip" + $dir = "target/$target/release" + $files = @("$dir/openidea.exe") + if (Test-Path "$dir/WebView2Loader.dll") { + $files += "$dir/WebView2Loader.dll" + } + Compress-Archive -Path $files -DestinationPath $asset -Force + $hash = (Get-FileHash $asset -Algorithm SHA256).Hash.ToLower() + "$hash $asset" | Out-File -Encoding ascii "$asset.sha256" + gh release upload $env:TAG $asset "$asset.sha256" --clobber # The remote development server, per host platform it can run on. The desktop # app downloads the one for the host (ide-tools `server`) and installs it over SSH. diff --git a/README.md b/README.md index 1c53e36a..b47abd88 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,9 @@ OpenIDEA brings the IntelliJ IDEA way of working — its keymap, its tool window its search-everything habits — to a native app with a Rust core. Editor, code insight, debugger, Git, terminal, database and HTTP clients, -for 60+ languages. Builds for macOS, Windows and Linux. +for 60+ languages. Builds for macOS, Windows and Linux. On Windows, if you'd +rather skip the installer, each release also ships a portable zip — unpack it +and run `openidea.exe`. ## Benchmark