3737 env :
3838 LINUX_APP_RELEASE_PATH : frontend/app_flowy/product/${{ github.ref_name }}/linux/Release
3939 LINUX_ZIP_NAME : AppFlowy-linux-x86.tar.gz
40+ LINUX_PACKAGE_NAME : AppFlowy-linux-x86_${{ github.ref_name }}.deb
4041 steps :
4142 - name : Checkout
4243 uses : actions/checkout@v2
7071 flutter config --enable-linux-desktop
7172 cargo make --env APP_VERSION=${{ github.ref_name }} --profile production-linux-x86_64 appflowy
7273
74+ - name : Build Linux package
75+ working-directory : ${{ env.LINUX_APP_RELEASE_PATH }}
76+ run : |
77+ mkdir -p package/opt && mv AppFlowy package/opt/
78+ cd package && mkdir DEBIAN
79+ printf 'Package: AppFlowy
80+ Version: %s
81+ Architecture: all
82+ Essential: no
83+ Priority: optional
84+ Maintainer: AppFlowy
85+ Description: An Open Source Alternative to Notion\n
86+ ' "${{ github.ref_name }}" > DEBIAN/control
87+ printf '#!/bin/bash
88+
89+ set -e
90+
91+ # Create a link in /usr/bin for quick access using terminal
92+ ln -s /opt/AppFlowy/app_flowy /usr/bin/appflowy
93+
94+ # Update icon & executable path in desktop entry
95+ grep -rl "\[CHANGE_THIS\]" /opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
96+
97+ # Add shortcut in applications drawer
98+ mv /opt/AppFlowy/appflowy.desktop.temp /usr/share/applications/appflowy.desktop' > DEBIAN/postinst
99+ printf '#!/bin/bash
100+
101+ set -e
102+
103+ # Remove symbolic link from /usr/bin
104+ rm /usr/bin/appflowy
105+
106+ # Remove Desktop entry
107+ rm /usr/share/applications/appflowy.desktop' > DEBIAN/postrm
108+ cd ${{ env.LINUX_APP_RELEASE_PATH }} && dpkg-deb --build package ${{ env.LINUX_PACKAGE_NAME }}
109+
73110 - name : Upload Release Asset
74111 id : upload-release-asset
75112 uses : actions/upload-release-asset@v1
@@ -81,6 +118,17 @@ jobs:
81118 asset_name : ${{ env.LINUX_ZIP_NAME }}
82119 asset_content_type : application/octet-stream
83120
121+ - name : Upload Release Asset Install Package
122+ id : upload-release-asset-install-package
123+ uses : actions/upload-release-asset@v1
124+ env :
125+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
126+ with :
127+ upload_url : ${{ needs.create-release.outputs.upload_url }}
128+ asset_path : ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_NAME }}
129+ asset_name : ${{ env.LINUX_PACKAGE_NAME }}
130+ asset_content_type : application/octet-stream
131+
84132 build-macos-x86_64 :
85133 runs-on : macos-latest
86134 needs : create-release
0 commit comments