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_${{ github.ref_name }}_linux-amd64.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+ # Create control file
80+ printf 'Package: AppFlowy
81+ Version: %s
82+ Architecture: amd64
83+ Essential: no
84+ Priority: optional
85+ Maintainer: AppFlowy
86+ Description: An Open Source Alternative to Notion\n' "${{ github.ref_name }}" > DEBIAN/control
87+
88+ # postinst script for creating symlink
89+ printf '#!/bin/bash
90+ if [ -e /usr/local/bin/appflowy ]; then
91+ echo "Symlink already exists, skipping."
92+ else
93+ echo "Creating Symlink in /usr/local/bin/appflowy"
94+ ln -s /opt/AppFlowy/app_flowy /usr/local/bin/appflowy
95+ fi' > DEBIAN/postinst
96+ chmod 0755 DEBIAN/postinst
97+
98+ # postrm script for cleaning up residuals
99+ printf '#!/bin/bash
100+ if [ -e /usr/local/bin/appflowy ]; then
101+ rm /usr/local/bin/appflowy
102+ fi' > DEBIAN/postrm
103+ chmod 0755 DEBIAN/postrm
104+
105+ mkdir -p usr/share/applications
106+ # Update Exec & icon path in desktop entry
107+ grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
108+ # Add desktop entry in package
109+ mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
110+
111+ # Build
112+ cd ../ && dpkg-deb --build --root-owner-group package ${{ env.LINUX_PACKAGE_NAME }}
113+
73114 - name : Upload Release Asset
74115 id : upload-release-asset
75116 uses : actions/upload-release-asset@v1
@@ -81,6 +122,17 @@ jobs:
81122 asset_name : ${{ env.LINUX_ZIP_NAME }}
82123 asset_content_type : application/octet-stream
83124
125+ - name : Upload Release Asset Install Package
126+ id : upload-release-asset-install-package
127+ uses : actions/upload-release-asset@v1
128+ env :
129+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
130+ with :
131+ upload_url : ${{ needs.create-release.outputs.upload_url }}
132+ asset_path : ${{ env.LINUX_APP_RELEASE_PATH }}/${{ env.LINUX_PACKAGE_NAME }}
133+ asset_name : ${{ env.LINUX_PACKAGE_NAME }}
134+ asset_content_type : application/octet-stream
135+
84136 build-macos-x86_64 :
85137 runs-on : macos-latest
86138 needs : create-release
0 commit comments