From a223e0142f60f73dd8f7f92e18434c75535e8ad0 Mon Sep 17 00:00:00 2001 From: TheOneWithTheBraid Date: Fri, 29 Apr 2022 10:11:39 +0200 Subject: [PATCH] feat: support AppImage builds - add CI builds for AppImage builds - add AppImage metadata Signed-off-by: TheOneWithTheBraid --- .gitlab-ci.yml | 40 +++++++++++++++++++++++++++++++++++++ appimage/.gitignore | 2 ++ appimage/AppRun | 4 ++++ appimage/FluffyChat.desktop | 9 +++++++++ appimage/README.md | 23 +++++++++++++++++++++ 5 files changed, 78 insertions(+) create mode 100644 appimage/.gitignore create mode 100755 appimage/AppRun create mode 100644 appimage/FluffyChat.desktop create mode 100644 appimage/README.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9ece42b2..4669f9f3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -194,6 +194,46 @@ build_linux_arm64: paths: - build/linux/arm64/release/bundle/ +build_linux_appimage_x86: + stage: deploy + image: appimagecrafters/appimage-builder + needs: [build_linux_x86] + only: + - main + - tags + script: + - cp -r build/linux/x64/release/bundle appimage/FluffyChat.AppDir + - cd appimage + - cp FluffyChat.desktop FluffyChat.AppDir/ + - mkdir -p FluffyChat.AppDir/usr/share/icons + - cp ../assets/logo.png FluffyChat.AppDir/usr/share/icons/fluffychat.png + - appimagetool FluffyChat.AppDir + allow_failure: true + artifacts: + when: on_success + paths: + - appimage/FluffyChat-x86_64.AppImage + +build_linux_appimage_arm64: + stage: deploy + image: appimagecrafters/appimage-builder + needs: [build_linux_arm64] + only: + - main + - tags + script: + - cp -r build/linux/arm64/release/bundle appimage/FluffyChat.AppDir + - cd appimage + - cp FluffyChat.desktop FluffyChat.AppDir/ + - mkdir -p FluffyChat.AppDir/usr/share/icons + - cp assets/logo.png FluffyChat.AppDir/usr/share/icons/fluffychat.png + - appimagetool FluffyChat.AppDir + allow_failure: true + artifacts: + when: on_success + paths: + - appimage/FluffyChat-arm64.AppImage + update-dependencies: stage: coverage needs: [] diff --git a/appimage/.gitignore b/appimage/.gitignore new file mode 100644 index 00000000..256f43d9 --- /dev/null +++ b/appimage/.gitignore @@ -0,0 +1,2 @@ +FluffyChat.AppDir +*.AppImage diff --git a/appimage/AppRun b/appimage/AppRun new file mode 100755 index 00000000..95b7c056 --- /dev/null +++ b/appimage/AppRun @@ -0,0 +1,4 @@ +#!/bin/sh + +cd "$(dirname "$0")" +exec ./fluffychat \ No newline at end of file diff --git a/appimage/FluffyChat.desktop b/appimage/FluffyChat.desktop new file mode 100644 index 00000000..ceee4c91 --- /dev/null +++ b/appimage/FluffyChat.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=FluffyChat +Comment=Matrix Client. Chat with your friends +Exec=AppRun +Icon=fluffychat +Terminal=false +Categories=Network;Chat;InstantMessaging;X-Matrix; \ No newline at end of file diff --git a/appimage/README.md b/appimage/README.md new file mode 100644 index 00000000..e7139cc2 --- /dev/null +++ b/appimage/README.md @@ -0,0 +1,23 @@ +# FluffyChat AppImage + +FluffyChat is provided as AppImage too. To Download, visit fluffychat.im. + +## Building + +- Ensure you install `appimagetool` + +```shell +flutter build linux + +# copy binaries to appimage dir +cp -r build/linux/{x64,arm64}/release/bundle appimage/FluffyChat.AppDir +cd appimage + +# prepare AppImage files +cp FluffyChat.desktop FluffyChat.AppDir/ +mkdir -p FluffyChat.AppDir/usr/share/icons +cp ../assets/logo.png FluffyChat.AppDir/usr/share/icons/fluffychat.png + +# build the AppImage +appimagetool FluffyChat.AppDir +```