name: Multi Distro Build on: workflow_dispatch jobs: clone-repo: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 arch-build: runs-on: ubuntu-latest needs: clone-repo container: archlinux:latest steps: - name: Install dependencies run: | pacman -Syu --noconfirm pacman -S --noconfirm git python python-pip binutils mv /lib/python3*/EXTERNALLY-MANAGED . || true pip install --upgrade pip pip install pyinstaller inquirerpy distro - name: Build binary run: | pwd && ls pyinstaller --onefile --add-data "data/:data/" setup.py cp dist/setup arch-setup shell: bash debian-build: runs-on: ubuntu-latest needs: clone-repo container: debian:stable-slim steps: - name: Install dependencies run: | apt-get update && apt-get upgrade -y apt-get install -y git python3 python3-pip binutils mv /usr/lib/python*/EXTERNALLY-MANAGED . || true pip install pyinstaller inquirerpy distro - name: Build binary run: | cd ${GITHUB_WORKSPACE} pyinstaller --onefile --add-data "data/:data/" setup.py cp dist/setup debian-setup shell: bash fedora-build: runs-on: ubuntu-latest needs: clone-repo container: fedora:latest steps: - name: Install dependencies run: | dnf update -y dnf install -y git python python-pip binutils pip install inquirerpy distro pyinstaller - name: Build binary run: | cd ${GITHUB_WORKSPACE} pyinstaller --onefile --add-data "data/:data/" setup.py cp dist/setup fedora-setup shell: bash upload-artifacts: runs-on: ubuntu-latest needs: [arch-build, debian-build, fedora-build] steps: - name: Upload artifacts uses: actions/upload-artifact@v4 with: path: ${GITHUB_WORKSPACE}/*-setup