|
| 1 | +version: 1 |
| 2 | +script: |
| 3 | + # Remove any previous build |
| 4 | + - rm -rf AppDir | true |
| 5 | + # Make usr and icons dirs |
| 6 | + - mkdir -p AppDir/usr/src |
| 7 | + # Copy the python application code into the AppDir |
| 8 | + - cp /source/synchronizer.py AppDir/usr/src |
| 9 | + - cp /source/synchronizer.png AppDir/usr/src |
| 10 | + - cp /source/synchronizer.xml AppDir/usr/src |
| 11 | + - mkdir -p AppDir/usr/share/icons/hicolor/512x512/apps |
| 12 | + - cp /source/synchronizer.png AppDir/usr/share/icons/hicolor/512x512/apps |
| 13 | + # Install python3.10 and curl (to install pip) |
| 14 | + - apt update |
| 15 | + - apt install -y software-properties-common curl |
| 16 | + - add-apt-repository ppa:deadsnakes/ppa -y |
| 17 | + - env DEBIAN_FRONTEND=noninteractive apt install -y python3.10 python3.10-dev python3.10-distutils |
| 18 | + # Install system dependencies (The ones needed to install pycairo and PyGObject libs for python3.10) |
| 19 | + - apt install -y libgirepository1.0-dev libcairo2-dev gir1.2-gtk-3.0 |
| 20 | + # Install modules requests setuptools pip wheel for python3.10 |
| 21 | + - python3.10 <(curl https://bootstrap.pypa.io/get-pip.py) |
| 22 | + - python3.10 -m pip install --upgrade requests setuptools pip wheel |
| 23 | + # Install requirements of the application |
| 24 | + - python3.10 -m pip install --ignore-installed --prefix=/usr --root=AppDir -r /source/requirements.txt |
| 25 | + |
| 26 | +AppDir: |
| 27 | + path: ./AppDir |
| 28 | + |
| 29 | + app_info: |
| 30 | + id: ahsan-appimages.gtk3-synchronizer-for-linux |
| 31 | + name: Synchronizer for Linux |
| 32 | + icon: synchronizer |
| 33 | + version: 1.0.0 |
| 34 | + # Set the python executable as entry point |
| 35 | + exec: /usr/bin/python3.10 |
| 36 | + # Set the application main script path as argument. Use '$@' to forward CLI parameters |
| 37 | + exec_args: '$APPDIR/usr/src/synchronizer.py $@' |
| 38 | + |
| 39 | + apt: |
| 40 | + arch: amd64 |
| 41 | + sources: |
| 42 | + - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse' # Default repo of Ubuntu 18.04 (Bionic) |
| 43 | + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' # Key id of Ubuntu 18.04 0x3B4FE6ACC0B21F32 |
| 44 | + - sourceline: 'deb [arch=amd64] http://security.ubuntu.com/ubuntu bionic-security main' # Bionic-Security repo |
| 45 | + # - sourceline: 'deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' # Default repo of Ubuntu 20.04 (Focal) |
| 46 | + # key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' # Key id of Ubuntu 20.04 |
| 47 | + - sourceline: 'deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu bionic main' # Deadsnake PPA to install python3.10 |
| 48 | + key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xF23C5A6CF475977595C89F51BA6932366A755776' |
| 49 | + include: |
| 50 | + # Python 3.10 |
| 51 | + - python3.10 |
| 52 | + # Appindicator |
| 53 | + - gir1.2-appindicator3-0.1 # This adds the necessary .typelib files for AppIndicator3 when using 'gi.require_version("AppIndicator3", "0.1")' in python |
| 54 | + - libappindicator3-1 |
| 55 | + # GTK |
| 56 | + - gir1.2-gtk-3.0 # This adds the necessary .typelib files for Gtk3 when using 'gi.require_version("Gtk", "3.0")' in python |
| 57 | + - libgtk-3-0 |
| 58 | + - libcanberra-gtk3-module |
| 59 | + # Common |
| 60 | + - libfuse2 |
| 61 | + - libx11-6 |
| 62 | + - libxcb-render0 |
| 63 | + - libbrotli1 |
| 64 | + - libxau6 |
| 65 | + - libxdmcp6 |
| 66 | + - libgraphite2-3 |
| 67 | + - gvfs |
| 68 | + exclude: |
| 69 | + - libfontconfig1 |
| 70 | + - libfontconfig1-dev |
| 71 | + - libfreetype6 |
| 72 | + - libfreetype6-dev |
| 73 | + - libharfbuzz0b |
| 74 | + |
| 75 | + runtime: |
| 76 | + env: |
| 77 | + APPDIR_LIBRARY_PATH: '$APPDIR/lib/x86_64:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders:$APPDIR/usr/lib/x86_64-linux-gnu/gvfs' |
| 78 | + GIO_MODULE_DIR: '$APPDIR/usr/lib/x86_64-linux-gnu/gio/modules' # Path of gio modules |
| 79 | + GI_TYPELIB_PATH: '$APPDIR/usr/lib/x86_64-linux-gnu/girepository-1.0:$APPDIR/usr/lib/girepository-1.0' # Paths of .typelib files |
| 80 | + GDK_BACKEND: 'x11' # Necessary on wayland |
| 81 | + PATH: '${APPDIR}/usr/bin:${PATH}' |
| 82 | + # Set python home |
| 83 | + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOME |
| 84 | + PYTHONHOME: '${APPDIR}/usr' |
| 85 | + # Path to the site-packages dir or other modules dirs |
| 86 | + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH |
| 87 | + PYTHONPATH: '${APPDIR}/usr/lib/python3.10:${APPDIR}/usr/lib/python3.10/site-packages' |
| 88 | + # Set python home |
| 89 | + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONHOME |
| 90 | + # Path to the site-packages dir or other modules dirs |
| 91 | + # See https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH |
| 92 | + |
| 93 | + test: |
| 94 | + fedora: |
| 95 | + image: appimagecrafters/tests-env:fedora-30 |
| 96 | + command: ./AppRun |
| 97 | + use_host_x: true |
| 98 | + debian: |
| 99 | + image: appimagecrafters/tests-env:debian-stable |
| 100 | + command: ./AppRun |
| 101 | + use_host_x: true |
| 102 | + arch: |
| 103 | + image: appimagecrafters/tests-env:archlinux-latest |
| 104 | + command: ./AppRun |
| 105 | + use_host_x: true |
| 106 | + centos: |
| 107 | + image: appimagecrafters/tests-env:centos-7 |
| 108 | + command: ./AppRun |
| 109 | + use_host_x: true |
| 110 | + ubuntu: |
| 111 | + image: appimagecrafters/tests-env:ubuntu-xenial |
| 112 | + command: ./AppRun |
| 113 | + use_host_x: true |
| 114 | + |
| 115 | +AppImage: |
| 116 | + update-information: 'None' |
| 117 | + sign-key: 'None' |
| 118 | + arch: x86_64 |
0 commit comments