chore: use https://github.com/ivan-hc/ArchImage for AppImage
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
		@@ -12,39 +12,24 @@ jobs:
 | 
			
		||||
    name: Build AppImage
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: https://gitea.com/actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | 
			
		||||
      - uses: https://gitea.com/actions/checkout@v4
 | 
			
		||||
 | 
			
		||||
      - name: Install required dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
            sudo apt update
 | 
			
		||||
            sudo apt install -y binutils coreutils desktop-file-utils gtk-update-icon-cache fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-dev python3-setuptools python3-build python3-venv squashfs-tools strace util-linux zsync git zstd adwaita-icon-theme
 | 
			
		||||
 | 
			
		||||
      - name: Upgrade pip toolchain
 | 
			
		||||
        run: |
 | 
			
		||||
          python3 -m pip install --upgrade \
 | 
			
		||||
            pip setuptools setuptools-scm wheel packaging build
 | 
			
		||||
 | 
			
		||||
      - name: Install appimage-builder
 | 
			
		||||
        run: |
 | 
			
		||||
          git clone https://github.com/Boria138/appimage-builder
 | 
			
		||||
          cd appimage-builder
 | 
			
		||||
          pip install .
 | 
			
		||||
 | 
			
		||||
      - name: Install uv
 | 
			
		||||
        run: |
 | 
			
		||||
          pip install uv
 | 
			
		||||
            sudo apt update && sudo apt install desktop-file-utils
 | 
			
		||||
 | 
			
		||||
      - name: Build AppImage
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build-aux
 | 
			
		||||
          sed -i '/app_info:/,/- exec:/ s/^\(\s*version:\s*\).*/\1"0"/' AppImageBuilder.yml
 | 
			
		||||
          appimage-builder
 | 
			
		||||
          chmod a+x ./portprotonqt-junest.sh
 | 
			
		||||
          ./portprotonqt-junest.sh
 | 
			
		||||
 | 
			
		||||
      - name: Upload AppImage
 | 
			
		||||
        uses: https://gitea.com/actions/gitea-upload-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: PortProtonQt-AppImage
 | 
			
		||||
          path: build-aux/PortProtonQt*.AppImage
 | 
			
		||||
          path: build-aux/*.AppImage*
 | 
			
		||||
 | 
			
		||||
  build-fedora:
 | 
			
		||||
    name: Build Fedora RPM
 | 
			
		||||
 
 | 
			
		||||
@@ -23,33 +23,19 @@ jobs:
 | 
			
		||||
      - name: Install required dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
            sudo apt update
 | 
			
		||||
            sudo apt install -y binutils coreutils desktop-file-utils gtk-update-icon-cache fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-dev python3-setuptools python3-build python3-venv squashfs-tools strace util-linux zsync git zstd adwaita-icon-theme
 | 
			
		||||
 | 
			
		||||
      - name: Upgrade pip toolchain
 | 
			
		||||
        run: |
 | 
			
		||||
          python3 -m pip install --upgrade \
 | 
			
		||||
            pip setuptools setuptools-scm wheel packaging build
 | 
			
		||||
 | 
			
		||||
      - name: Install appimage-builder
 | 
			
		||||
        run: |
 | 
			
		||||
          git clone https://github.com/Boria138/appimage-builder
 | 
			
		||||
          cd appimage-builder
 | 
			
		||||
          pip install .
 | 
			
		||||
 | 
			
		||||
      - name: Install uv
 | 
			
		||||
        run: |
 | 
			
		||||
          pip install uv
 | 
			
		||||
            sudo apt update && sudo apt install desktop-file-utils
 | 
			
		||||
 | 
			
		||||
      - name: Build AppImage
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build-aux
 | 
			
		||||
          appimage-builder
 | 
			
		||||
          chmod a+x ./portprotonqt-junest.sh
 | 
			
		||||
          ./portprotonqt-junest.sh
 | 
			
		||||
 | 
			
		||||
      - name: Upload AppImage
 | 
			
		||||
        uses: https://gitea.com/actions/gitea-upload-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: PortProtonQt-AppImage
 | 
			
		||||
          path: build-aux/PortProtonQt*.AppImage*
 | 
			
		||||
          path: build-aux/*.AppImage*
 | 
			
		||||
 | 
			
		||||
  build-arch:
 | 
			
		||||
    name: Build Arch Package
 | 
			
		||||
 
 | 
			
		||||
@@ -1,187 +0,0 @@
 | 
			
		||||
name: Build Check - AppImage, Arch, Fedora
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    paths:
 | 
			
		||||
      - 'build-aux/**'
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  PKGDEST: "/tmp/portprotonqt"
 | 
			
		||||
  PACKAGE: "portprotonqt"
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  changes:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    outputs:
 | 
			
		||||
      appimage: ${{ steps.check.outputs.appimage }}
 | 
			
		||||
      fedora:   ${{ steps.check.outputs.fedora }}
 | 
			
		||||
      arch:     ${{ steps.check.outputs.arch }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: https://gitea.com/actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | 
			
		||||
        with:
 | 
			
		||||
          fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
      - name: Ensure git is installed
 | 
			
		||||
        run: |
 | 
			
		||||
          sudo apt update
 | 
			
		||||
          sudo apt install -y git
 | 
			
		||||
 | 
			
		||||
      - name: Check changed files
 | 
			
		||||
        id: check
 | 
			
		||||
        run: |
 | 
			
		||||
          # Get changed files
 | 
			
		||||
          git diff --name-only ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} > changed_files.txt
 | 
			
		||||
 | 
			
		||||
          echo "Changed files:"
 | 
			
		||||
          cat changed_files.txt
 | 
			
		||||
 | 
			
		||||
          # Check AppImage files
 | 
			
		||||
          if grep -q "build-aux/AppImageBuilder.yml" changed_files.txt; then
 | 
			
		||||
            echo "appimage=true" >> $GITHUB_OUTPUT
 | 
			
		||||
          else
 | 
			
		||||
            echo "appimage=false" >> $GITHUB_OUTPUT
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
          # Check Fedora spec files (only fedora-git.spec)
 | 
			
		||||
          if grep -q "build-aux/fedora-git.spec" changed_files.txt; then
 | 
			
		||||
            echo "fedora=true" >> $GITHUB_OUTPUT
 | 
			
		||||
          else
 | 
			
		||||
            echo "fedora=false" >> $GITHUB_OUTPUT
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
          # Check Arch PKGBUILD-git
 | 
			
		||||
          if grep -q "build-aux/PKGBUILD-git" changed_files.txt; then
 | 
			
		||||
            echo "arch=true" >> $GITHUB_OUTPUT
 | 
			
		||||
          else
 | 
			
		||||
            echo "arch=false" >> $GITHUB_OUTPUT
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
  build-appimage:
 | 
			
		||||
    name: Build AppImage
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    needs: changes
 | 
			
		||||
    if: needs.changes.outputs.appimage == 'true' || github.event_name == 'workflow_dispatch'
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: https://gitea.com/actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | 
			
		||||
 | 
			
		||||
      - name: Install required dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
            sudo apt update
 | 
			
		||||
            sudo apt install -y binutils coreutils desktop-file-utils gtk-update-icon-cache fakeroot fuse libgdk-pixbuf2.0-dev patchelf python3-pip python3-dev python3-setuptools squashfs-tools strace util-linux zsync zstd git
 | 
			
		||||
 | 
			
		||||
      - name: Install tools
 | 
			
		||||
        run: |
 | 
			
		||||
            pip3 install git+https://github.com/Boria138/appimage-builder.git
 | 
			
		||||
            pip3 install uv
 | 
			
		||||
 | 
			
		||||
      - name: Build AppImage
 | 
			
		||||
        run: |
 | 
			
		||||
          cd build-aux
 | 
			
		||||
          appimage-builder
 | 
			
		||||
 | 
			
		||||
      - name: Upload AppImage
 | 
			
		||||
        uses: https://gitea.com/actions/gitea-upload-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: PortProtonQt-AppImage
 | 
			
		||||
          path: build-aux/PortProtonQt*.AppImage
 | 
			
		||||
 | 
			
		||||
  build-fedora:
 | 
			
		||||
    name: Build Fedora RPM
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: changes
 | 
			
		||||
    if: needs.changes.outputs.fedora == 'true' || github.event_name == 'workflow_dispatch'
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        fedora_version: [41, 42, rawhide]
 | 
			
		||||
 | 
			
		||||
    container:
 | 
			
		||||
      image: fedora:${{ matrix.fedora_version }}
 | 
			
		||||
      options: --privileged
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Install build dependencies
 | 
			
		||||
        run: |
 | 
			
		||||
          dnf install -y git rpmdevtools python3-devel python3-wheel python3-pip \
 | 
			
		||||
                         python3-build pyproject-rpm-macros python3-setuptools \
 | 
			
		||||
                         redhat-rpm-config nodejs npm
 | 
			
		||||
 | 
			
		||||
      - name: Setup rpmbuild environment
 | 
			
		||||
        run: |
 | 
			
		||||
          useradd rpmbuild -u 5002 -g users || true
 | 
			
		||||
          mkdir -p /home/rpmbuild/{BUILD,RPMS,SPECS,SRPMS,SOURCES}
 | 
			
		||||
          chown -R rpmbuild:users /home/rpmbuild
 | 
			
		||||
          echo '%_topdir /home/rpmbuild' > /home/rpmbuild/.rpmmacros
 | 
			
		||||
 | 
			
		||||
      - name: Checkout repo
 | 
			
		||||
        uses: https://gitea.com/actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | 
			
		||||
 | 
			
		||||
      - name: Copy fedora-git.spec
 | 
			
		||||
        run: |
 | 
			
		||||
          cp build-aux/fedora-git.spec /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
 | 
			
		||||
          chown -R rpmbuild:users /home/rpmbuild
 | 
			
		||||
 | 
			
		||||
      - name: Build RPM
 | 
			
		||||
        run: |
 | 
			
		||||
          su rpmbuild -c "rpmbuild -ba /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec"
 | 
			
		||||
 | 
			
		||||
      - name: Upload RPM package
 | 
			
		||||
        uses: https://gitea.com/actions/gitea-upload-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: PortProtonQt-RPM-Fedora-${{ matrix.fedora_version }}
 | 
			
		||||
          path: /home/rpmbuild/RPMS/**/*.rpm
 | 
			
		||||
 | 
			
		||||
  build-arch:
 | 
			
		||||
    name: Build Arch Package
 | 
			
		||||
    runs-on: ubuntu-22.04
 | 
			
		||||
    needs: changes
 | 
			
		||||
    if: needs.changes.outputs.arch == 'true' || github.event_name == 'workflow_dispatch'
 | 
			
		||||
    container:
 | 
			
		||||
      image: archlinux:base-devel@sha256:0589aa8f31d8f64c630a2d1cc0b4c3847a1a63c988abd63d78d3c9bd94764f64
 | 
			
		||||
      volumes:
 | 
			
		||||
        - /usr:/usr-host
 | 
			
		||||
        - /opt:/opt-host
 | 
			
		||||
      options: --privileged
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Prepare container
 | 
			
		||||
        run: |
 | 
			
		||||
          pacman -Sy --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm
 | 
			
		||||
          sed -i 's/#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc) -l$(nproc)"/g' /etc/makepkg.conf
 | 
			
		||||
          sed -i 's/OPTIONS=(.*)/OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge lto)/g' /etc/makepkg.conf
 | 
			
		||||
          yes | pacman -Scc
 | 
			
		||||
          pacman-key --init
 | 
			
		||||
          pacman -S --noconfirm archlinux-keyring
 | 
			
		||||
          mkdir -p /__w/portproton-repo
 | 
			
		||||
          pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
 | 
			
		||||
          pacman-key --lsign-key 3056513887B78AEB
 | 
			
		||||
          pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
 | 
			
		||||
          pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
 | 
			
		||||
          cat << EOM >> /etc/pacman.conf
 | 
			
		||||
 | 
			
		||||
          [chaotic-aur]
 | 
			
		||||
          Include = /etc/pacman.d/chaotic-mirrorlist
 | 
			
		||||
          EOM
 | 
			
		||||
          pacman -Syy
 | 
			
		||||
          useradd -m user -G wheel && echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
 | 
			
		||||
          echo "PACKAGER=\"Boris Yumankulov <boria138@altlinux.org>\"" >> /etc/makepkg.conf
 | 
			
		||||
          chown user -R /tmp
 | 
			
		||||
          chown user -R ..
 | 
			
		||||
 | 
			
		||||
      - name: Build
 | 
			
		||||
        run: |
 | 
			
		||||
          cd /__w/portproton-repo
 | 
			
		||||
          git clone https://git.linux-gaming.ru/Boria138/PortProtonQt.git
 | 
			
		||||
          cd /__w/portproton-repo/PortProtonQt/build-aux
 | 
			
		||||
          chown user -R ..
 | 
			
		||||
          su user -c "yes '' | makepkg --noconfirm -s -p PKGBUILD-git"
 | 
			
		||||
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: https://gitea.com/actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | 
			
		||||
 | 
			
		||||
      - name: Upload Arch package
 | 
			
		||||
        uses: https://gitea.com/actions/gitea-upload-artifact@v4
 | 
			
		||||
        with:
 | 
			
		||||
          name: PortProtonQt-Arch
 | 
			
		||||
          path: ${{ env.PKGDEST }}/*
 | 
			
		||||
		Reference in New Issue
	
	Block a user