From af9b4b3922ab942dd6fdf746ec18950d23c11a64 Mon Sep 17 00:00:00 2001 From: ramanverma2k Date: Mon, 14 Nov 2022 13:23:38 +0530 Subject: [PATCH] ci: build & upload installer package for windows --- .github/workflows/release.yml | 22 ++++++++++++++++++ .../scripts/windows_installer/flowy_logo.ico | Bin 0 -> 66062 bytes .../windows_installer/inno_setup_config.iss | 21 +++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 frontend/scripts/windows_installer/flowy_logo.ico create mode 100644 frontend/scripts/windows_installer/inno_setup_config.iss diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 03f2bb13db..82347bf539 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -213,6 +213,7 @@ jobs: env: WINDOWS_APP_RELEASE_PATH: frontend\app_flowy\product\${{ github.ref_name }}\windows WINDOWS_ZIP_NAME: AppFlowy-windows-x86_64.zip + WINDOWS_INSTALLER_NAME: AppFlowy-${{ github.ref_name }}-windows-x86_64 steps: - name: Checkout uses: actions/checkout@v3 @@ -246,6 +247,16 @@ jobs: with: files: ${{ env.WINDOWS_APP_RELEASE_PATH }}\ dest: ${{ env.WINDOWS_APP_RELEASE_PATH }}\${{ env.WINDOWS_ZIP_NAME }} + + - name: Copy installer config & icon file + working-directory: frontend + run: | + cp scripts/windows_installer/* ../${{ env.WINDOWS_APP_RELEASE_PATH }} + + - name: Build installer executable + working-directory: ${{ env.WINDOWS_APP_RELEASE_PATH }} + run: | + iscc /F${{ env.WINDOWS_INSTALLER_NAME }} inno_setup_config.iss /DAppVersion=${{ github.ref_name }} - name: Upload Release Asset id: upload-release-asset @@ -257,3 +268,14 @@ jobs: asset_path: ${{ env.WINDOWS_APP_RELEASE_PATH }}\${{ env.WINDOWS_ZIP_NAME }} asset_name: ${{ env.WINDOWS_ZIP_NAME }} asset_content_type: application/octet-stream + + - name: Upload Installer Asset + id: upload-installer-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: ${{ env.WINDOWS_APP_RELEASE_PATH }}\Output\${{ env.WINDOWS_INSTALLER_NAME }}.exe + asset_name: ${{ env.WINDOWS_INSTALLER_NAME }}.exe + asset_content_type: application/octet-stream diff --git a/frontend/scripts/windows_installer/flowy_logo.ico b/frontend/scripts/windows_installer/flowy_logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..96dc83f062be48c5a8b21704fcae040e3dce7615 GIT binary patch literal 66062 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 U585Yc6HG!cskh3tHcwptABdVK3IG5A literal 0 HcmV?d00001 diff --git a/frontend/scripts/windows_installer/inno_setup_config.iss b/frontend/scripts/windows_installer/inno_setup_config.iss new file mode 100644 index 0000000000..1c127bb4d8 --- /dev/null +++ b/frontend/scripts/windows_installer/inno_setup_config.iss @@ -0,0 +1,21 @@ +[Setup] +AppName=AppFlowy +AppVersion={#AppVersion} +WizardStyle=modern +Compression=lzma2 +SolidCompression=yes +DefaultDirName={autopf}\AppFlowy\ +DefaultGroupName=AppFlowy +SetupIconFile=flowy_logo.ico +UninstallDisplayIcon={app}\app_flowy.exe +UninstallDisplayName=AppFlowy +AppPublisher=AppFlowy-IO +VersionInfoVersion={#AppVersion} + +[Files] +Source: "AppFlowy\app_flowy.exe";DestDir: "{app}";DestName: "app_flowy.exe" +Source: "AppFlowy\*";DestDir: "{app}" +Source: "AppFlowy\data\*";DestDir: "{app}\data\"; Flags: recursesubdirs + +[Icons] +Name: "{group}\AppFlowy";Filename: "{app}\app_flowy.exe" \ No newline at end of file