Kaynağa Gözat

ci: build & upload installer package for windows

ramanverma2k 2 yıl önce
ebeveyn
işleme
af9b4b3922

+ 22 - 0
.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

BIN
frontend/scripts/windows_installer/flowy_logo.ico


+ 21 - 0
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"