From 4fea0fb90ad64ea69d00b7008c064ce2b95ed763 Mon Sep 17 00:00:00 2001 From: HttpRafa <60099368+HttpRafa@users.noreply.github.com> Date: Mon, 5 May 2025 20:54:57 +0200 Subject: [PATCH] feat: Add installer --- .github/workflows/installer.yml | 45 ++++++++++++++++++++++++++++++++ cli/setup.iss | 29 ++++++++++++++++++++ images/logo.ico | Bin 0 -> 14542 bytes logo.svg => images/logo.svg | 0 4 files changed, 74 insertions(+) create mode 100644 .github/workflows/installer.yml create mode 100644 cli/setup.iss create mode 100644 images/logo.ico rename logo.svg => images/logo.svg (100%) diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml new file mode 100644 index 00000000..c67131fc --- /dev/null +++ b/.github/workflows/installer.yml @@ -0,0 +1,45 @@ +name: CLI Installer + +on: + release: + types: + - published + +jobs: + build-and-push: + if: github.ref_type == 'tag' + name: Build & Upload + runs-on: windows-latest + permissions: + contents: write + packages: write + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Authenticate Github CLI + run: | + Write-Output $Env:GITHUB_TOKEN | gh auth login --with-token + + - name: Download cli-windows-x86_64.exe from this release + run: | + gh release download "${{ github.event.release.tag_name }}" \ + --pattern cli-windows-x86_64.exe \ + --dir . + + - name: Copy ICO into workspace root + run: | + Copy-Item -Path images\*.ico -Destination $Env:GITHUB_WORKSPACE + + - name: Install Inno Setup + run: choco install innosetup -y + + - name: Build Windows Installer + run: | + iscc cli\setup.iss /Ooutput + + - name: Upload Windows Installer to Release + uses: softprops/action-gh-release@v2 + with: + cli-windows-x86_64-setup.exe \ No newline at end of file diff --git a/cli/setup.iss b/cli/setup.iss new file mode 100644 index 00000000..640b77e8 --- /dev/null +++ b/cli/setup.iss @@ -0,0 +1,29 @@ +[Setup] +; Basic application information +AppName=Atomic Cloud CLI +AppVersion=0.0.0-nightly +DefaultDirName={\pf32}\Atomic Cloud +DefaultGroupName=Atomic Cloud +OutputBaseFilename=cli-windows-x86_64-setup +Compression=lzma2 +overwriteinstallations=yes + +SetupIconFile=logo.ico + +[Languages] +Name: "english"; MessagesFile: "compiler\:Default.isl" + +[Files] +Source: "cli-windows-x86\_64.exe"; DestDir: "{app}"; Flags: ignoreversion +Source: "logo.ico"; DestDir: "{app}"; Flags: ignoreversion + +[Icons] +; Desktop shortcut +Name: "{userdesktop}\Atomic Cloud CLI"; Filename: "{app}\cli-windows-x86\_64.exe"; WorkingDir: "{app}"; IconFilename: "{app}\logo.ico" + +; Start Menu shortcut +Name: "{group}\Atomic Cloud CLI"; Filename: "{app}\cli-windows-x86\_64.exe"; WorkingDir: "{app}"; IconFilename: "{app}\logo.ico" + +[Run] +; Optionally launch the application after installation +Filename: "{app}\cli-windows-x86\_64.exe"; Description: "Launch Atomic Cloud CLI"; Flags: nowait postinstall skipifsilent diff --git a/images/logo.ico b/images/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..2f607fde52e9a542652d72682d9a7bc0f32ae7e9 GIT binary patch literal 14542 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 literal 0 HcmV?d00001 diff --git a/logo.svg b/images/logo.svg similarity index 100% rename from logo.svg rename to images/logo.svg