Skip to content

Commit 2cbd74c

Browse files
committed
feat: create deb package for linux
1 parent 43e4b1e commit 2cbd74c

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

.github/workflows/release.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
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
@@ -70,6 +71,42 @@ jobs:
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

Comments
 (0)