From f17f13786db60d9bd4b4f33c435fe816ac91d513 Mon Sep 17 00:00:00 2001 From: david-swift Date: Tue, 27 Aug 2024 07:04:05 +0200 Subject: [PATCH] Add Flatpak CI --- .github/workflows/ci.yml | 44 +++++++++++++++++++++++ data/release-manifest/manifest.json | 54 +++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 data/release-manifest/manifest.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ebdbee9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,44 @@ +name: CI + +on: + push: + branches: [main] + +jobs: + flatpak: + name: Flatpak + runs-on: ubuntu-latest + container: + image: bilelmoussaoui/flatpak-github-actions:gnome-45 + options: --privileged + strategy: + matrix: + arch: [x86_64, aarch64] + fail-fast: false + steps: + - uses: actions/checkout@v4 + - name: Install Swift dependencies + run: | + dnf -y install libadwaita-devel + dnf -y install swiftlang + - name: Install deps + if: ${{ matrix.arch != 'x86_64' }} + run: | + dnf -y install docker + - name: Set up QEMU + if: ${{ matrix.arch != 'x86_64' }} + id: qemu + run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + - name: SPM Flatpak Builder Tool + run: | + swift build -c release + git clone https://github.com/flatpak/flatpak-builder-tools + mv data/release-manifest/manifest.json io.github.AparokshaUI.AdwaitaTemplate.json + swift flatpak-builder-tools/spm/flatpak-spm-generator.swift . . + - name: Flatpak Builder + uses: flatpak/flatpak-github-actions/flatpak-builder@v6 + with: + bundle: io.github.AparokshaUI.AdwaitaTemplate.flatpak + manifest-path: io.github.AparokshaUI.AdwaitaTemplate.json + cache-key: flatpak-builder-${{ github.sha }} + arch: ${{ matrix.arch }} diff --git a/data/release-manifest/manifest.json b/data/release-manifest/manifest.json new file mode 100644 index 0000000..572b056 --- /dev/null +++ b/data/release-manifest/manifest.json @@ -0,0 +1,54 @@ +{ + "app-id": "io.github.AparokshaUI.AdwaitaTemplate", + "runtime": "org.gnome.Platform", + "runtime-version": "46", + "sdk": "org.gnome.Sdk", + "sdk-extensions": [ + "org.freedesktop.Sdk.Extension.swift5" + ], + "command": "AdwaitaTemplate", + "finish-args": [ + "--share=ipc", + "--socket=fallback-x11", + "--device=dri", + "--socket=wayland" + ], + "build-options": { + "append-path": "/usr/lib/sdk/swift5/bin", + "prepend-ld-library-path": "/usr/lib/sdk/swift5/lib" + }, + "cleanup": [ + "/include", + "/lib/pkgconfig", + "/man", + "/share/doc", + "/share/gtk-doc", + "/share/man", + "/share/pkgconfig", + "*.la", + "*.a" + ], + "modules": [ + { + "name": "AdwaitaTemplate", + "builddir": true, + "buildsystem": "simple", + "sources": [ + { + "type": "dir", + "path": "." + } + ], + "build-commands": [ + "./setup-offline.sh", + "swift build -c release --static-swift-stdlib --skip-update", + "strip .build/release/AdwaitaTemplate", + "install -Dm755 .build/release/AdwaitaTemplate /app/bin/AdwaitaTemplate", + "install -Dm644 data/io.github.AparokshaUI.AdwaitaTemplate.metainfo.xml $DESTDIR/app/share/metainfo/io.github.AparokshaUI.AdwaitaTemplate.metainfo.xml", + "install -Dm644 data/io.github.AparokshaUI.AdwaitaTemplate.desktop $DESTDIR/app/share/applications/io.github.AparokshaUI.AdwaitaTemplate.desktop", + "install -Dm644 data/icons/io.github.AparokshaUI.AdwaitaTemplate.svg $DESTDIR/app/share/icons/hicolor/scalable/apps/io.github.AparokshaUI.AdwaitaTemplate.svg", + "install -Dm644 data/icons/io.github.AparokshaUI.AdwaitaTemplate-symbolic.svg $DESTDIR/app/share/icons/hicolor/symbolic/apps/io.github.AparokshaUI.AdwaitaTemplate-symbolic.svg" + ] + } + ] +}