diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 651c521..e30aa4b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -97,12 +97,29 @@ jobs: ) Compress-Archive -Path $files -DestinationPath "$PWD/ssh-agent-echo-win-x64.zip" -Force + - name: Install NSIS + if: matrix.platform == 'windows' + run: | + iwr -useb get.scoop.sh -outfile 'install.ps1' + .\install.ps1 -RunAsAdmin + scoop update + scoop bucket add extras + scoop install nsis + + - name: Generate Windows Installer + if: matrix.platform == 'windows' + shell: pwsh + run: | + & "$env:USERPROFILE\scoop\apps\nsis\current\makensis.exe" .\install.nsi + - name: Upload artifact if: matrix.platform == 'windows' uses: actions/upload-artifact@v6 with: name: ${{ matrix.platform }}-binaries - path: ${{ matrix.artifact }} + path: | + ${{ matrix.artifact }} + publish/SshAgentEcho-Installer.exe - name: Upload artifact if: matrix.platform == 'linux' @@ -136,5 +153,6 @@ jobs: artifacts/windows-binaries/ssh-agent-echo-win-x64.zip artifacts/linux-binaries/publish/*.deb artifacts/linux-binaries/publish/*.rpm + artifacts/windows-binaries/SshAgentEcho-Installer.exe env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/install.nsi b/install.nsi new file mode 100644 index 0000000..2fc94b0 --- /dev/null +++ b/install.nsi @@ -0,0 +1,41 @@ +; Simple SSH Agent Echo Installer +!include "MUI2.nsh" + +Name "SSH Agent Echo" +OutFile "publish\SshAgentEcho-Installer.exe" +InstallDir "$LOCALAPPDATA\SshAgentEcho" +Icon "Assets\icon.ico" +UninstallIcon "Assets\icon.ico" + +!define MUI_FINISHPAGE_RUN "$INSTDIR\ssh-agent-echo-gui.exe" +!define MUI_FINISHPAGE_RUN_CHECKED + +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH +!insertmacro MUI_LANGUAGE "English" + +Section "Install" + SetOutPath "$INSTDIR" + File "publish\ssh-agent-echo.exe" + File "publish\ssh-agent-echo-gui.exe" + + WriteUninstaller "$INSTDIR\uninstall.exe" + + CreateDirectory "$SMPROGRAMS\SSH Agent Echo" + CreateShortCut "$SMPROGRAMS\SSH Agent Echo\SSH Agent Echo.lnk" "$INSTDIR\ssh-agent-echo-gui.exe" + CreateShortCut "$SMPROGRAMS\SSH Agent Echo\Uninstall.lnk" "$INSTDIR\uninstall.exe" + + ReadRegStr $0 HKCU "Environment" "Path" + StrCpy $1 "$0;$INSTDIR" + WriteRegStr HKCU "Environment" "Path" "$1" + SendMessage 0xffff 0x001A 0 "STR:Environment" /TIMEOUT=5000 +SectionEnd + +Section "Uninstall" + RMDir /r "$INSTDIR" + RMDir /r "$SMPROGRAMS\SSH Agent Echo" + + ReadRegStr $0 HKCU "Environment" "Path" + WriteRegStr HKCU "Environment" "Path" "$0" + SendMessage 0xffff 0x001A 0 "STR:Environment" /TIMEOUT=5000 +SectionEnd