Use GitHub workflow actions to generate AppImage
authorColin Clark <colin.clark@cclark.uk>
Tue, 15 Aug 2023 16:34:04 +0000 (17:34 +0100)
committerColin Clark <colin.clark@cclark.uk>
Tue, 15 Aug 2023 16:34:04 +0000 (17:34 +0100)
.github/workflows/appimage.yml [new file with mode: 0644]
AppImageBuilder.yml [new file with mode: 0644]

diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml
new file mode 100644 (file)
index 0000000..fcefe36
--- /dev/null
@@ -0,0 +1,52 @@
+name: Geeqie AppImage build
+run-name: ${{ github.actor }} is running Geeqie AppImage build
+on: [push, pull_request]
+jobs:
+  Build-AppImage:
+    runs-on: ubuntu-22.04
+    steps:
+    - run: sudo apt-get update
+    - run: sudo apt-get install build-essential libgtk-3-dev libgtk-3-bin
+    - run: sudo apt-get install evince
+    - run: sudo apt-get install libarchive-dev
+    - run: sudo apt-get install libchamplain-0.12-dev libchamplain-gtk-0.12-dev
+    - run: sudo apt-get install libgexiv2-dev
+    - run: sudo apt-get install libgspell-1-dev
+    - run: sudo apt-get install libheif-dev
+    - run: sudo apt-get install liblua5.3-dev
+    - run: sudo apt-get install libpoppler-glib-dev
+    - run: sudo apt-get install libraw-dev libomp-dev
+    - run: sudo apt-get install webp-pixbuf-loader
+
+    - uses: actions/checkout@v3
+    - uses: actions/setup-python@v4
+    - uses: BSFishy/meson-build@v1.0.3
+      with:
+        action: test
+        directory: build
+        options: --verbose
+        meson-version: 0.56.2
+
+    - name: build
+      run: DESTDIR=/home/runner/work/geeqie/geeqie/AppDir ninja -C build install
+    - name: build AppImage
+      uses: AppImageCrafters/build-appimage-action@master
+      with:
+        recipe: AppImageBuilder.yml
+
+    - name: Create Release
+      uses: ncipollo/release-action@v1
+      with:
+         allowUpdates: true
+         tag: continuous
+         name: Continuous build
+         prerelease: true
+         artifacts: "Geeqie-latest-x86_64.AppImage"
+
+    - name: Upload logs
+      uses: actions/upload-artifact@v2
+      if: always()
+      with:
+        name: logs-all-build-appimage
+        path: /home/runner/work/geeqie/geeqie/build/meson-logs/*.txt
+        retention-days: 5
diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml
new file mode 100644 (file)
index 0000000..c8838fc
--- /dev/null
@@ -0,0 +1,52 @@
+# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
+version: 1
+
+script:
+  # Refer to https://github.com/AppImageCrafters/appimage-builder/issues/271
+  - which mksquashfs || apt install squashfs-tools
+
+AppDir:
+  path: /home/runner/work/geeqie/geeqie/AppDir/
+  app_info:
+    id: geeqie
+    name: Geeqie
+    icon: geeqie
+    version: latest
+    exec: usr/local/bin/geeqie
+    exec_args: $@
+  apt:
+    arch:
+    - amd64
+    allow_unauthenticated: true
+    sources:
+    - sourceline: deb http://im.archive.ubuntu.com/ubuntu/ jammy main restricted
+    - sourceline: deb http://im.archive.ubuntu.com/ubuntu/ jammy-updates main restricted
+    - sourceline: deb http://im.archive.ubuntu.com/ubuntu/ jammy universe
+    - sourceline: deb http://im.archive.ubuntu.com/ubuntu/ jammy-updates universe
+    include:
+    - evince
+    - libarchive13
+    - libchamplain-0.12
+    - libchamplain-gtk-0.12-0
+    - libdjvulibre21
+    - libgexiv2-2
+    - libgspell-1-2
+    - libheif1
+    - libjpeg8
+    - liblcms2-2
+    - liblua5.3-0
+    - libopenjp2-7
+    - libraw20
+    - librsvg2-common
+    - libtiff5
+
+  files:
+    include: []
+    exclude:
+    - usr/share/man
+    - usr/share/doc/*/README.*
+    - usr/share/doc/*/changelog.*
+    - usr/share/doc/*/NEWS.*
+    - usr/share/doc/*/TODO.*
+AppImage:
+  arch: x86_64