From 8da47e1144c51092f648102d08243de0e5b6efb3 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 5 Nov 2024 21:30:39 +0900 Subject: [PATCH] Flatpak is not buildable in docker --- .github/workflows/build_artifacts.yml | 21 +++++++-------- automation_tools/install_dependencies.sh | 33 ++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 12 deletions(-) create mode 100755 automation_tools/install_dependencies.sh diff --git a/.github/workflows/build_artifacts.yml b/.github/workflows/build_artifacts.yml index e44eecf..f732665 100644 --- a/.github/workflows/build_artifacts.yml +++ b/.github/workflows/build_artifacts.yml @@ -26,6 +26,9 @@ jobs: steps: + - name: Prepearing environment + run: curl -s "https://raw.githubusercontent.com/RetroDECK/components-template/refs/heads/main/automation_tools/install_dependencies.sh" | /bin/bash + - name: Generate a token for Rekku if: ${{ github.repository == 'RetroDECK/RetroDECK' }} id: generate-rekku-token @@ -63,21 +66,15 @@ jobs: - name: "Build flatpak" run: | - # Pull the Docker image - docker pull ebassi/flathub:base - # Configure Git git config --global protocol.file.allow always - # Run the flatpak build inside the Docker container - docker run --rm \ - -v "${GITHUB_WORKSPACE}:/workspace" \ - -w /workspace \ - ghcr.io/retrodeck/retrodeck-builder:latest \ - --force-clean \ - --repo="/workspace/artifacts-repo" \ - "/workspace/artifacts-build-dir" \ - "${{ inputs.MANIFEST_FILENAME }}" + flatpak-builder --user --force-clean \ + --install-deps-from=flathub \ + --install-deps-from=flathub-beta \ + --repo=${GITHUB_WORKSPACE}/artifacts-repo \ + "${GITHUB_WORKSPACE}/artifacts-build-dir" \ + net.retrodeck.retrodeck.yml - name: "Exporting dir tree" id: tree diff --git a/automation_tools/install_dependencies.sh b/automation_tools/install_dependencies.sh new file mode 100755 index 0000000..1cd6025 --- /dev/null +++ b/automation_tools/install_dependencies.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# This script is installing the required dependencies to correctly run the pipeline and build the flatpak + +unset pkg_mgr + +# rpm-ostree must be checked before dnf because a dnf (wrapper) command also works on rpm-ostree distros (not what we want) +for potential_pkg_mgr in apt pacman rpm-ostree dnf; do + command -v "$potential_pkg_mgr" &> /dev/null && pkg_mgr="$potential_pkg_mgr" && break +done + +case "$pkg_mgr" in + apt) + sudo add-apt-repository -y ppa:flatpak/stable + sudo apt update + sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl jq + ;; + pacman) + sudo pacman -Syu --noconfirm flatpak flatpak-builder p7zip xmlstarlet bzip2 + ;; + rpm-ostree) + echo "When using a distro with rpm-ostree, you shouldn't build directly on the host. Try using a distrobox." + exit 1 + ;; + dnf) + sudo dnf install -y flatpak flatpak-builder p7zip p7zip-plugins xmlstarlet bzip2 curl + ;; + *) + echo "Package manager $pkg_mgr not supported. Please open an issue." + ;; +esac + +flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo