From: Colin Clark Date: Mon, 28 Aug 2023 14:13:01 +0000 (+0100) Subject: Use GitHub actions to generate aarch64 AppImages X-Git-Tag: v2.2~127 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=0a497dcbc2a90bda734afb1a931441ab83950767 Use GitHub actions to generate aarch64 AppImages --- diff --git a/.github/workflows/appimage-aarch64.yml b/.github/workflows/appimage-aarch64.yml new file mode 100644 index 00000000..e281bd09 --- /dev/null +++ b/.github/workflows/appimage-aarch64.yml @@ -0,0 +1,70 @@ +name: Geeqie aarch64 AppImage build +run-name: ${{ github.actor }} is running Geeqie aarch64 AppImage build +on: [push] +jobs: + Build-AppImage: + runs-on: ubuntu-latest + strategy: + matrix: + arch: [aarch64] + include: + - arch: aarch64 + cpu: cortex-a53 + base_image: raspios_lite_arm64:latest + steps: + - uses: actions/checkout@v2 + - uses: pguyot/arm-runner-action@v2 + with: + base_image: ${{ matrix.base_image }} + cpu: ${{ matrix.cpu }} + cpu_info: ${{ matrix.cpu_info }} + image_additional_mb: 1000 + bind_mount_repository: false + import_github_env: true + export_github_env: true + copy_artifact_path: geeqie.gz + commands: | + yes | sudo apt-get update + yes | sudo apt-get install build-essential libgtk-3-dev libgtk-3-bin + yes | sudo apt-get update + yes | sudo apt-get install build-essential libgtk-3-dev libgtk-3-bin + yes | sudo apt-get install evince + yes | sudo apt-get install libarchive-dev + yes | sudo apt-get install libchamplain-0.12-dev libchamplain-gtk-0.12-dev + yes | sudo apt-get install libgexiv2-dev + yes | sudo apt-get install libgspell-1-dev + yes | sudo apt-get install libheif-dev + yes | sudo apt-get install liblua5.3-dev + yes | sudo apt-get install libpoppler-glib-dev + yes | sudo apt-get install libraw-dev libomp-dev + yes | sudo apt-get install git + yes | sudo apt-get install python3 python3-pip python3-setuptools python3-wheel ninja-build + yes | sudo apt-get install meson + yes | sudo apt-get install gettext + mkdir -p $GITHUB_WORKSPACE/AppDir + mkdir -p $GITHUB_WORKSPACE/AppDir/usr + meson setup -Ddevel=disabled -Ddoxygen=disabled -Dgit=disabled -Dyelp-build=disabled -Dprefix=$GITHUB_WORKSPACE/AppDir/usr build + ninja -C build install + tar -czvf geeqie.gz $GITHUB_WORKSPACE/ + + - run: tar -xvf geeqie.gz + - run: mkdir -p AppDir + - run: cp -var ./home/runner/work/geeqie/geeqie/AppDir/ . + - uses: AppImageCrafters/build-appimage-action@master + with: + recipe: AppImageBuilder-aarch64.yml + + - uses: ncipollo/release-action@v1 + with: + allowUpdates: true + tag: continuous + name: Continuous build + prerelease: true + artifacts: "*.AppImage" + + - 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/.github/workflows/appimage-minimal-aarch64.yml b/.github/workflows/appimage-minimal-aarch64.yml new file mode 100644 index 00000000..420057fc --- /dev/null +++ b/.github/workflows/appimage-minimal-aarch64.yml @@ -0,0 +1,59 @@ +name: Geeqie minimal aarch64 AppImage build +run-name: ${{ github.actor }} is running Geeqie minimal aarch64 AppImage build +on: [push] +jobs: + Build-AppImage: + runs-on: ubuntu-latest + strategy: + matrix: + arch: [aarch64] + include: + - arch: aarch64 + cpu: cortex-a53 + base_image: raspios_lite_arm64:latest + steps: + - uses: actions/checkout@v2 + - uses: pguyot/arm-runner-action@v2 + with: + base_image: ${{ matrix.base_image }} + cpu: ${{ matrix.cpu }} + cpu_info: ${{ matrix.cpu_info }} + image_additional_mb: 400 + bind_mount_repository: false + import_github_env: true + export_github_env: true + copy_artifact_path: geeqie.gz + commands: | + yes | sudo apt-get update + yes | sudo apt-get install build-essential libgtk-3-dev libgtk-3-bin + yes | sudo apt-get install git + yes | sudo apt-get install python3 python3-pip python3-setuptools python3-wheel ninja-build + yes | sudo apt-get install meson + yes | sudo apt-get install gettext + mkdir -p $GITHUB_WORKSPACE/AppDir + mkdir -p $GITHUB_WORKSPACE/AppDir/usr + meson setup -Darchive=disabled -Dcms=disabled -Ddevel=disabled -Ddoxygen=disabled -Ddjvu=disabled -Devince=disabled -Dexecinfo=disabled -Dexiv2=disabled -Dgit=disabled -Dgps-map=disabled -Dheif=disabled -Dj2k=disabled -Djpeg=disabled -Djpegxl=disabled -Dlibraw=disabled -Dlua=disabled -Dpandoc=disabled -Dpdf=disabled -Dspell=disabled -Dtiff=disabled -Dvideothumbnailer=disabled -Dyelp-build=disabled -Dprefix=$GITHUB_WORKSPACE/AppDir/usr build + ninja -C build install + tar -czvf geeqie.gz $GITHUB_WORKSPACE/ + + - run: tar -xvf geeqie.gz + - run: mkdir -p AppDir + - run: cp -var ./home/runner/work/geeqie/geeqie/AppDir/ . + - uses: AppImageCrafters/build-appimage-action@master + with: + recipe: AppImageBuilderMinimal-aarch64.yml + + - uses: ncipollo/release-action@v1 + with: + allowUpdates: true + tag: continuous + name: Continuous build + prerelease: true + artifacts: "*.AppImage" + + - 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/.github/workflows/appimage-minimal.yml b/.github/workflows/appimage-minimal-x86_64.yml similarity index 89% rename from .github/workflows/appimage-minimal.yml rename to .github/workflows/appimage-minimal-x86_64.yml index ce297342..6674ff71 100644 --- a/.github/workflows/appimage-minimal.yml +++ b/.github/workflows/appimage-minimal-x86_64.yml @@ -1,5 +1,5 @@ -name: Geeqie minimal AppImage build -run-name: ${{ github.actor }} is running Geeqie minimal AppImage build +name: Geeqie minimal x86_64 AppImage build +run-name: ${{ github.actor }} is running Geeqie minimal x86_64 AppImage build on: [push] jobs: Build-AppImage: @@ -23,7 +23,7 @@ jobs: - name: build AppImage uses: AppImageCrafters/build-appimage-action@master with: - recipe: AppImageBuilderMinimal.yml + recipe: AppImageBuilderMinimal-x86_64.yml - name: Create Release uses: ncipollo/release-action@v1 diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage-x86_64.yml similarity index 91% rename from .github/workflows/appimage.yml rename to .github/workflows/appimage-x86_64.yml index 79cd6fc8..452c701e 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage-x86_64.yml @@ -1,5 +1,5 @@ -name: Geeqie AppImage build -run-name: ${{ github.actor }} is running Geeqie AppImage build +name: Geeqie x86_64 AppImage build +run-name: ${{ github.actor }} is running Geeqie x86_64 AppImage build on: [push] jobs: Build-AppImage: @@ -33,7 +33,7 @@ jobs: - name: build AppImage uses: AppImageCrafters/build-appimage-action@master with: - recipe: AppImageBuilder.yml + recipe: AppImageBuilder-x86_64.yml - name: Create Release uses: ncipollo/release-action@v1 diff --git a/AppImageBuilder-aarch64.yml b/AppImageBuilder-aarch64.yml new file mode 100644 index 00000000..ad54434f --- /dev/null +++ b/AppImageBuilder-aarch64.yml @@ -0,0 +1,56 @@ +# 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: ./AppDir + app_info: + id: geeqie + name: Geeqie + icon: geeqie + version: latest + exec: usr/bin/geeqie + exec_args: $@ + apt: + arch: + - arm64 + allow_unauthenticated: true + sources: + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy universe + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports 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.* + - usr/lib/libuim-scm.so.0 + - usr/lib/gtk-3.0/3.0.0/immodules/im-uim.so + - usr/lib/im-uim.so + - usr/lib/libuim.so.8 +AppImage: + arch: aarch64 diff --git a/AppImageBuilder.yml b/AppImageBuilder-x86_64.yml similarity index 100% rename from AppImageBuilder.yml rename to AppImageBuilder-x86_64.yml diff --git a/AppImageBuilderMinimal-aarch64.yml b/AppImageBuilderMinimal-aarch64.yml new file mode 100644 index 00000000..7296ae03 --- /dev/null +++ b/AppImageBuilderMinimal-aarch64.yml @@ -0,0 +1,42 @@ +# 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: ./AppDir + app_info: + id: geeqie + name: Geeqie + icon: geeqie + version: minimal-latest + exec: usr/bin/geeqie + exec_args: $@ + apt: + arch: + - arm64 + allow_unauthenticated: true + sources: + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy main restricted + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates main restricted + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy universe + - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports jammy-updates universe + include: + - libtiff5 + + files: + include: [] + exclude: + - usr/share/man + - usr/share/doc/*/README.* + - usr/share/doc/*/changelog.* + - usr/share/doc/*/NEWS.* + - usr/share/doc/*/TODO.* + - usr/lib/libuim-scm.so.0 + - usr/lib/gtk-3.0/3.0.0/immodules/im-uim.so + - usr/lib/im-uim.so + - usr/lib/libuim.so.8 +AppImage: + arch: aarch64 diff --git a/AppImageBuilderMinimal.yml b/AppImageBuilderMinimal-x86_64.yml similarity index 100% rename from AppImageBuilderMinimal.yml rename to AppImageBuilderMinimal-x86_64.yml