]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
build: Add AppImage build workflows
authorDaniel Wagner <dwagner@suse.de>
Thu, 19 Jan 2023 12:28:00 +0000 (13:28 +0100)
committerDaniel Wagner <dwagner@suse.de>
Fri, 20 Jan 2023 07:07:35 +0000 (08:07 +0100)
Provide an AppImage version of the current head for testing.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
.github/AppImageBuilder.yml [new file with mode: 0644]
.github/workflows/appimage.yml [new file with mode: 0644]

diff --git a/.github/AppImageBuilder.yml b/.github/AppImageBuilder.yml
new file mode 100644 (file)
index 0000000..3675edf
--- /dev/null
@@ -0,0 +1,60 @@
+# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
+version: 1
+script:
+  # Ensure that the mksquashfs tool is installed (workaround for the AppImageCrafters/build-appimage GHA)
+  - which mksquashfs || apt install squashfs-tools
+  # fake icons
+  - mkdir -p AppDir/usr/share/icons/hicolor/64x64/apps
+  - touch  AppDir/usr/share/icons/hicolor/64x64/apps/nvme-cli.png
+
+AppDir:
+  path: AppDir
+  app_info:
+    id: linux-nvme.nvme-cli
+    name: nvme-cli
+    version: latest
+    icon: nvme-cli
+    exec: usr/sbin/nvme
+    exec_args: $@
+  apt:
+    arch: amd64
+    allow_unauthenticated: true
+    sources:
+      - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
+        key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920D1991BC93C'
+      - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
+      - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
+      - sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
+    include:
+      - libjson-c5
+      - libhugetlbfs0
+  files:
+    include:
+    - /lib64/libcrypto.so.3
+    - /lib64/libdbus-1.so.3
+    - /lib64/libjson-c.so.5
+    exclude:
+    - usr/share/man
+    - usr/share/doc/*/README.*
+    - usr/share/doc/*/changelog.*
+    - usr/share/doc/*/NEWS.*
+    - usr/share/doc/*/TODO.*
+  test:
+    fedora-30:
+      image: appimagecrafters/tests-env:fedora-30
+      command: ./AppRun
+    debian-stable:
+      image: appimagecrafters/tests-env:debian-stable
+      command: ./AppRun
+    archlinux-latest:
+      image: appimagecrafters/tests-env:archlinux-latest
+      command: ./AppRun
+    centos-7:
+      image: appimagecrafters/tests-env:centos-7
+      command: ./AppRun
+    ubuntu-xenial:
+      image: appimagecrafters/tests-env:ubuntu-xenial
+      command: ./AppRun
+AppImage:
+  update-information: 'gh-releases-zsync|linux-nvme|nvme-cli|latest|*x86_64.AppImage.zsync'
+  arch: x86_64
diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml
new file mode 100644 (file)
index 0000000..6b6057f
--- /dev/null
@@ -0,0 +1,33 @@
+---
+name: AppImage
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+env:
+  DESTDIR: ../AppDir
+
+jobs:
+  build-appimage:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - name: install dependencies
+        run: sudo apt-get install libjson-c-dev libdbus-1-dev libhugetlbfs-dev
+      - uses: actions/setup-python@v4
+        with:
+          python-version: '3.x'
+      - uses: BSFishy/meson-build@v1.0.3
+        with:
+          setup-options: --werror --buildtype=release --prefix=/usr
+          action: install
+      - name: build AppImage
+        uses: AppImageCrafters/build-appimage@v1.3
+        with:
+          recipe: .github/AppImageBuilder.yml
+      - uses: actions/upload-artifact@v2
+        with:
+          name: AppImage
+          path: '*.AppImage*'