Skip to content

Commit affd253

Browse files
authored
feat: support AppImage (#3248)
* feat: add build deb shell script * feat: update release.yml * chore: add flatpak readme * feat: support appimage builder * feat: support appimage builder * Update release.yml
1 parent 773b09c commit affd253

File tree

20 files changed

+260
-38
lines changed

20 files changed

+260
-38
lines changed

.github/workflows/release.yml

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -394,42 +394,23 @@ jobs:
394394
if: ${{ matrix.job.target == 'aarch64-unknown-linux-gnu' }}
395395
working-directory: frontend
396396
run: |
397-
sudo apt-get install -qy binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
397+
sudo apt-get install -qy binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libgtk-3-0
398398
399399
- name: Build AppFlowy
400400
working-directory: frontend
401401
run: |
402402
flutter config --enable-linux-desktop
403403
dart ./scripts/flutter_release_build/build_flowy.dart run . ${{ github.ref_name }}
404404
405-
- name: Archive Assert
405+
- name: Archive Asset
406406
working-directory: ${{ env.LINUX_APP_RELEASE_PATH }}
407407
run: tar -czf ${{ env.LINUX_ZIP_NAME }} *
408408

409-
- name: Configuring Linux Package
409+
- name: Build Linux package (.deb)
410410
working-directory: frontend
411411
run: |
412-
mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/opt
413-
mkdir -p ../${{ env.LINUX_APP_RELEASE_PATH }}/package/usr/share/applications
414-
cp -r ./scripts/linux_installer ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
415-
cd ../${{ env.LINUX_APP_RELEASE_PATH }}/package/DEBIAN
416-
grep -rl "\[CHANGE_THIS\]" ./control | xargs sed -i "s/\[CHANGE_THIS\]/${{ github.ref_name }}/"
417-
chmod 0755 {postinst,postrm}
418-
419-
- name: Build Linux package
420-
working-directory: ${{ env.LINUX_APP_RELEASE_PATH }}
421-
run: |
422-
mv AppFlowy package/opt/
423-
cd package
424-
425-
# Update Exec & icon path in desktop entry
426-
grep -rl "\[CHANGE_THIS\]" ./opt/AppFlowy/appflowy.desktop.temp | xargs sed -i "s/\[CHANGE_THIS\]/\/opt/"
427-
# Add desktop entry in package
428-
mv ./opt/AppFlowy/appflowy.desktop.temp ./usr/share/applications/appflowy.desktop
429-
430-
# Build
431-
cd ../ && dpkg-deb --build --root-owner-group -Z xz package ${{ env.LINUX_PACKAGE_NAME }}
432-
412+
sh scripts/linux_distribution/deb/build_deb.sh appflowy_flutter/product/${{ github.ref_name }}/linux/Release ${{ github.ref_name }} ${{ env.LINUX_PACKAGE_NAME }}
413+
433414
- name: Upload Asset
434415
id: upload-release-asset
435416
uses: actions/upload-release-asset@v1
@@ -441,7 +422,7 @@ jobs:
441422
asset_name: ${{ env.LINUX_ZIP_NAME }}
442423
asset_content_type: application/octet-stream
443424

444-
- name: Upload Asset Install Package
425+
- name: Upload Debian package
445426
id: upload-release-asset-install-package
446427
uses: actions/upload-release-asset@v1
447428
env:

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,7 @@ pubspec.lock
3737
.fvm/
3838

3939
**/AppFlowy-Collab/
40+
41+
# ignore the deb filegit
42+
frontend/package
43+
frontend/*.deb

frontend/appflowy_flutter/linux/appflowy.desktop.temp

Lines changed: 0 additions & 8 deletions
This file was deleted.

frontend/scripts/code_generation/flowy_icons/generate_flowy_icons.sh

100644100755
File mode changed.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
2+
version: 1
3+
script:
4+
- rm -rf AppDir || true
5+
- cp -r appflowy_flutter/build/linux/x64/release/bundle AppDir
6+
7+
# Icon
8+
- mkdir -p AppDir/usr/share/icons/hicolor/scalable/apps
9+
- cp scripts/linux_distribution/packaging/appflowy.svg AppDir/usr/share/icons/hicolor/scalable/apps/
10+
11+
AppDir:
12+
path: ./AppDir
13+
app_info:
14+
id: io.appflowy.AppFlowy
15+
name: AppFlowy
16+
icon: appflowy.svg
17+
version: [CHANGE_THIS]
18+
exec: AppFlowy
19+
exec_args: $@
20+
apt:
21+
arch:
22+
- amd64
23+
allow_unauthenticated: true
24+
sources:
25+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy main restricted
26+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
27+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy universe
28+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-updates universe
29+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy multiverse
30+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-updates multiverse
31+
- sourceline: deb http://id.archive.ubuntu.com/ubuntu/ jammy-backports main restricted
32+
universe multiverse
33+
- sourceline: deb http://security.ubuntu.com/ubuntu jammy-security main restricted
34+
- sourceline: deb http://security.ubuntu.com/ubuntu jammy-security universe
35+
- sourceline: deb http://security.ubuntu.com/ubuntu jammy-security multiverse
36+
- sourceline: deb https://ppa.launchpadcontent.net/touchegg/stable/ubuntu/ jammy
37+
main
38+
- sourceline: deb https://packagecloud.io/slacktechnologies/slack/debian/ jessie
39+
main
40+
- sourceline: deb [arch=amd64 signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg]
41+
https://cli.github.com/packages stable main
42+
- sourceline: deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x
43+
jammy main
44+
- sourceline: deb [arch=amd64,arm64,armhf] http://packages.microsoft.com/repos/code
45+
stable main
46+
- sourceline: deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable
47+
main
48+
include:
49+
- libc6:amd64
50+
files:
51+
include: []
52+
exclude:
53+
- usr/share/man
54+
- usr/share/doc/*/README.*
55+
- usr/share/doc/*/changelog.*
56+
- usr/share/doc/*/NEWS.*
57+
- usr/share/doc/*/TODO.*
58+
test:
59+
fedora-30:
60+
image: appimagecrafters/tests-env:fedora-30
61+
command: ./AppRun
62+
debian-stable:
63+
image: appimagecrafters/tests-env:debian-stable
64+
command: ./AppRun
65+
archlinux-latest:
66+
image: appimagecrafters/tests-env:archlinux-latest
67+
command: ./AppRun
68+
centos-7:
69+
image: appimagecrafters/tests-env:centos-7
70+
command: ./AppRun
71+
ubuntu-xenial:
72+
image: appimagecrafters/tests-env:ubuntu-xenial
73+
command: ./AppRun
74+
AppImage:
75+
arch: x86_64
76+
update-information: guess
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
VERSION=$1
4+
5+
# if the appimage-builder not exist, download it
6+
if [ ! -e /usr/local/bin/appimage-builder ]; then
7+
wget -O appimage-builder-x86_64.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
8+
chmod +x appimage-builder-x86_64.AppImage
9+
10+
# install (optional)
11+
sudo mv appimage-builder-x86_64.AppImage /usr/local/bin/appimage-builder
12+
fi
13+
14+
15+
# update version
16+
grep -rl "\[CHANGE_THIS\]" scripts/linux_distribution/appimage/AppImageBuilder.yml | xargs sed -i "s/\[CHANGE_THIS\]/$VERSION/"
17+
18+
appimage-builder --recipe scripts/linux_distribution/appimage/AppImageBuilder.yml

frontend/scripts/linux_distribution/appimage/io.appflowy.AppFlowy.desktop

Whitespace-only changes.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[Desktop Entry]
2+
Type=Application
3+
Name=AppFlowy
4+
Icon=/usr/share/icons/hicolor/scalable/apps/appflowy.svg
5+
Exec=env GDK_GL=gles /usr/bin/AppFlowy %U
6+
Categories=Network;Productivity;
7+
Keywords=Notes
8+
DBusActivatable=true
9+
Implements=io.appflowy.AppFlowy;
10+
Terminal=false
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Package: AppFlowy
2+
Version: [CHANGE_THIS]
3+
Depends: libkeybinder-3.0-0
4+
Architecture: amd64
5+
Essential: no
6+
Priority: optional
7+
Maintainer: AppFlowy
8+
Description: An Open Source Alternative to Notion
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
if [ -e /usr/bin/AppFlowy ]; then
3+
echo "Symlink already exists, skipping."
4+
else
5+
echo "Creating Symlink in /usr/bin/appflowy"
6+
ln -s /usr/lib/AppFlowy/AppFlowy /usr/bin/AppFlowy
7+
ln -s /usr/lib/AppFlowy/launcher.sh /usr/bin/AppFlowyLauncher.sh
8+
fi

0 commit comments

Comments
 (0)