2 files changed, 187 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5e0873d9..c1130420 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -223,6 +223,71 @@ build-flatpak-arm64:
paths: ['build-flatpak/nheko-arm64.flatpak']
name: flatpak-${CI_COMMIT_REF_NAME}-${VERSION}-arm64
+appimage-amd64:
+ stage: build
+ image: ubuntu:22.04
+ tags: [docker]
+ allow_failure: true
+ before_script:
+ # Installing the packages needed to download and install third-party tools
+ - apt-get update && apt-get install -y software-properties-common git wget curl python3 python3-pip python3-setuptools
+
+ # Installing the packages needed to compile nheko and third-party tools
+ - apt-get -y install --no-install-suggests --no-install-recommends ca-certificates build-essential ninja-build cmake gcc make automake ccache liblmdb-dev
+ libssl-dev libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediaquick5 libqt5svg5-dev
+ qtmultimedia5-dev qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools qtdeclarative5-dev
+ qml-module-qtmultimedia qml-module-qtquick-controls2 qml-module-qtquick-layouts qml-module-qt-labs-platform
+ qt5keychain-dev ccache clazy libcurl4-openssl-dev libevent-dev libspdlog-dev nlohmann-json3-dev libcmark-dev asciidoc libre2-dev libgtest-dev libgl1-mesa-dev qml-module-qtquick-particles2
+
+ # Installing the packages needed to build AppImage
+ - apt-get -yq install breeze-icon-theme desktop-file-utils elfutils fakeroot file gnupg2 gtk-update-icon-cache libgdk-pixbuf2.0-dev libgdk-pixbuf2.0-0 libglib2.0-bin librsvg2-dev libyaml-dev strace zsync squashfs-tools
+
+ - wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O /usr/local/bin/appimagetool && \
+ - chmod +x /usr/local/bin/appimagetool
+
+ - export HOME_DIR=$(pwd)
+
+ # Workaround for https://github.com/AppImageCrafters/appimage-builder/issues/280
+ - cd /tmp
+ - git clone https://github.com/AppImageCrafters/appimage-builder
+ - cd appimage-builder
+ - git checkout 9733877eed75aea0fa8e9a1cd26c22d77a10aa4a
+ - pip3 install .
+ - pip3 install cffi
+ - cd $HOME_DIR
+
+ - /usr/sbin/update-ccache-symlinks
+ - rm -rf ../.hunter && mv .hunter ../.hunter || true
+
+ script:
+ - export PATH="/usr/local/bin/:/usr/lib/ccache:${PATH}"
+ - cmake -GNinja -H. -Bbuild
+ -DCMAKE_INSTALL_PREFIX=/usr
+ -DHUNTER_ROOT=".hunter"
+ -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=ON -DUSE_BUNDLED_LMDB=OFF -DUSE_BUNDLED_QTKEYCHAIN=OFF -DUSE_BUNDLED_LIBEVENT=OFF
+ -DVOIP=OFF -DMAN=OFF
+ -DCMAKE_BUILD_TYPE=Release -DHUNTER_CONFIGURATION_TYPES=Release
+ -DCI_BUILD=ON -DFETCHCONTENT_QUIET=OFF
+ -DJSON_ImplicitConversions=OFF
+ - DESTDIR=`pwd`/AppDir ninja -C build install/local
+ - DESTDIR=`pwd`/AppDir ninja -C build _deps/cmark-build/src/install
+ - mkdir -p AppDir/usr/lib/x86_64-linux-gnu AppDir/lib/x86_64-linux-gnu
+ - appimage-builder --skip-test
+ after_script:
+ - bash ./.ci/upload-nightly-gitlab.sh nheko-latest-x86_64.AppImage
+ rules:
+ - if : '$CI_PIPELINE_TRIGGERED == null'
+ artifacts:
+ paths:
+ - 'nheko-latest-x86_64.AppImage'
+ expire_in: 1 week
+ expose_as: 'appimage-amd64'
+ cache:
+ key: "$CI_JOB_NAME"
+ paths:
+ - .hunter/
+ - .ccache
+
linting:
stage: build
image: alpine:latest
diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml
new file mode 100644
index 00000000..3b7c5350
--- /dev/null
+++ b/AppImageBuilder.yml
@@ -0,0 +1,122 @@
+# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
+version: 1
+AppDir:
+ path: ./AppDir
+ app_info:
+ id: nheko
+ name: nheko
+ icon: nheko
+ version: latest
+ exec: usr/bin/nheko
+ exec_args: $@
+ runtime:
+ env:
+ APPDIR_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/x86_64-linux-gnu/gconv:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/pulseaudio
+ apt:
+ arch: amd64
+ allow_unauthenticated: true
+ sources:
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
+ - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
+ - sourceline: deb http://archive.canonical.com/ubuntu jammy partner
+ key_url: http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c
+ include:
+ # idk, need there ca-certificates, but some systems may not have
+ - ca-certificates
+ - gstreamer1.0-plugins-good
+ - libbs2b0
+ - libbz2-1.0
+ - libcurl4
+ - libelf1
+ - libexpat1
+ - libevent-core-2.1-7
+ - libevent-pthreads-2.1-7
+ - libjpeg-turbo8
+ - libkf5archive5
+ - liblmdb0
+ - liblz4-1
+ - libnorm1
+ - libnss-mdns
+ - libpcre3
+ - qml-module-qt-labs-platform
+ - qml-module-qt-labs-settings
+ - qml-module-qtgraphicaleffects
+ - qml-module-qtquick-particles2
+ - qml-module-qtmultimedia
+ - qml-module-qtquick2
+ - qml-module-qtquick-controls2
+ - qml-module-qtquick-layouts
+ - qml-module-qtquick-window2
+ - libcmark0.30.2
+ - libfmt8
+ - libolm3
+ - libqt5core5a
+ - libqt5dbus5
+ - libqt5gui5
+ - libqt5keychain1
+ - libqt5multimedia5
+ - libqt5multimedia5-plugins
+ - libqt5network5
+ - libqt5quickwidgets5
+ - libqt5svg5
+ - libqt5widgets5
+ - libspdlog1-fmt8
+ - libxcb-ewmh2
+ - libxcb1
+ - librubberband2
+ - libsm6
+ - libsnappy1v5
+ - libxau6
+ - libxcb-render-util0
+ - libxcb-sync1
+ - libxcb-xinerama0
+ - libxcb-xkb1
+ - libxcursor1
+ - libxdmcp6
+ - libxext6
+ - libxfixes3
+ - libxrender1
+ - libxshmfence1
+ - libxv1
+ - libxxf86vm1
+ - libzstd1
+ exclude: []
+ files:
+ exclude:
+ - usr/share/man
+ - usr/share/doc
+ - usr/bin/cmark
+ - usr/bin/dbus*
+ - usr/bin/openssl
+ - usr/bin/c_rehash
+ - usr/bin/session-migration
+ - usr/include
+ - usr/sbin
+ - lib/systemd
+ test:
+ fedora:
+ image: appimagecrafters/tests-env:fedora-30
+ command: ./AppRun
+ use_host_x: true
+ debian:
+ image: appimagecrafters/tests-env:debian-stable
+ command: ./AppRun
+ use_host_x: true
+ arch:
+ image: appimagecrafters/tests-env:archlinux-latest
+ command: ./AppRun
+ use_host_x: true
+ centos:
+ image: appimagecrafters/tests-env:centos-7
+ command: ./AppRun
+ use_host_x: true
+ ubuntu:
+ image: appimagecrafters/tests-env:ubuntu-xenial
+ command: ./AppRun
+ use_host_x: true
+AppImage:
+ arch: x86_64
+ update-information: None
+ sign-key: None
|