Skip to content

Commit 49b2bcd

Browse files
authored
Merge pull request #1386 from ramanverma2k/dep-pkg_1303
feat: create deb package for linux (#1303)
2 parents fcd214b + 319c358 commit 49b2bcd

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

.github/workflows/release.yml

Lines changed: 52 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_${{ github.ref_name }}_linux-amd64.deb
4041
steps:
4142
- name: Checkout
4243
uses: actions/checkout@v2
@@ -70,6 +71,46 @@ 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+
# 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

Comments
 (0)