Flatpak arm64 support (#8033)

* Add qemu for arm builds on flatpak

* Increase timeout-minutes

Mainly meant to retrigger GitHub actions (free GitHub actions runners have a max runtime of 6 hours)

* Change arm64 flatpak to build barebones, rather than through emulation

This new addition is highlighted in GitHub's new blog post: 
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

* Rename from arm64 to aarch64

* Potental fix for gst-plugins-good compilation

* Initial appimage arm64 builds

* Add inputs.arch variable

* Temporarily completely isolate arm64 and x86 dependencies

* Fix mesa download link and remove temp comments

* Disable libunwind in gst-plugins-good

* Revert changes in build_check_cache.yml

* Disable nls & static options in gst-plugins-good

* Rebase on main

* Re-add flatpak arm build

* Update gst-plugins-good to 1.24.10

This should be the version that received complete arm64 support

* Trying a solution

* Revert "Update gst-plugins-good to 1.24.10"

This reverts commit b416dcd0ae8a908811925ae65f7d49c290e3a194.

* Remove previous build-options

* Try installing the proper arch version of Meson

When building on a local arm64 device it runs properly.

* Remove sudo commands

* Use dnf rather than apt-get

* Try installing meson before the flatpak builder

* Change flatpak runner

This uses a more experimental version of the flatpak runner provided by Flathub

* Temporarily enable artifact upload

* Resolve merge conflicts

* Add arch variable into flatpak name

* Revert to using Gnome 46, rather than Gnome 47

* Add curl dependency

* Revert "Add curl dependency"

This reverts commit 888a0c4a758af58c410a0b45ecca7eb56e359d37.

* Clean up

* Define ubuntu version

Seems to be needed due to the arm version still being in public beta
This commit is contained in:
cochcoder
2025-03-10 10:36:50 -04:00
committed by GitHub
parent be0effc068
commit 79a5a9b5f8

View File

@ -62,19 +62,26 @@ jobs:
secrets: inherit
flatpak:
name: "Flatpak"
runs-on: ubuntu-latest
env:
date:
ver:
ver_pure:
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-46
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-46
options: --privileged
volumes:
- /usr/local/lib/android:/usr/local/lib/android
- /usr/share/dotnet:/usr/share/dotnet
- /opt/ghc:/opt/ghc1
- /usr/local/share/boost:/usr/local/share/boost1
strategy:
matrix:
variant:
- arch: x86_64
runner: ubuntu-24.04
- arch: aarch64
runner: ubuntu-24.04-arm
runs-on: ${{ matrix.variant.runner }}
env:
date:
ver:
ver_pure:
steps:
- name: "Remove unneeded stuff to free disk space"
run:
@ -92,24 +99,25 @@ jobs:
echo "ver_pure=$ver_pure" >> $GITHUB_ENV
echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
shell: bash
- uses: flatpak/flatpak-github-actions/flatpak-builder@master
- uses: flathub-infra/flatpak-github-actions/flatpak-builder@master
with:
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml
cache: true
arch: ${{ matrix.variant.arch }}
upload-artifact: false
- name: Upload artifacts Flatpak
uses: actions/upload-artifact@v4
with:
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak'
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak'
- name: Deploy Flatpak to nightly release
if: ${{github.ref == 'refs/heads/main'}}
uses: WebFreak001/deploy-nightly@v3.2.0
with:
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
release_id: 137995723
asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
asset_name: OrcaSlicer-Linux-flatpak_${{ env.ver }}.flatpak
asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
asset_name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
asset_content_type: application/octet-stream
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted