name: Build on Multiple Distributions on: push: branches: - main pull_request: branches: - main jobs: build-on-arch: runs-on: ubuntu-latest container: image: archlinux:latest steps: - name: Install basic dependencies run: | pacman -Syu --noconfirm pacman -S --noconfirm nodejs npm - uses: actions/checkout@v4 with: repository: 'https://gitea.akshun-lab.uk/akshun/setup-script' - name: Install dependencies run: | pacman -S --noconfirm python python-pip binutils - name: Prepare Python environment run: | mv /lib/python3*/EXTERNALLY-MANAGED . pip install --upgrade pip pip install pyinstaller inquirerpy distro - name: Build with PyInstaller run: | pyinstaller --onefile --add-data "bash/:bash/" --add-data "prompts/:prompts/" --add-data "config/:config/" setup.py - name: Upload artifact uses: actions/upload-artifact@v3 with: name: arch-setup path: dist/setup repository: 'https://gitea.akshun-lab.uk/akshun/setup-script' build-on-debian: runs-on: ubuntu-latest container: image: debian:stable steps: - name: Install basic dependencies run: | apt update && apt upgrade -y apt install -y git nodejs npm - uses: actions/checkout@v4 with: repository: 'https://gitea.akshun-lab.uk/akshun/setup-script' - name: Install dependencies run: | apt install -y python3 python3-pip binutils - name: Prepare Python environment run: | mv /lib/python*/EXTERNALLY-MANAGED . pip install pyinstaller inquirerpy distro - name: Build with PyInstaller run: | pyinstaller --onefile --add-data "bash/:bash/" --add-data "prompts/:prompts/" --add-data "config/:config/" setup.py - name: Upload artifact uses: actions/upload-artifact@v3 with: name: debian-setup path: dist/setup repository: 'https://gitea.akshun-lab.uk/akshun/setup-script' build-on-fedora: runs-on: ubuntu-latest container: image: fedora:latest steps: - name: Install basic dependencies run: | dnf up -y dnf install -y git nodejs npm - uses: actions/checkout@v4 with: repository: 'https://gitea.akshun-lab.uk/akshun/setup-script' - name: Install dependencies run: | dnf install -y python python-pip binutils - name: Install Python dependencies run: | pip install inquirerpy distro pyinstaller - name: Build with PyInstaller run: | pyinstaller --onefile --add-data "bash/:bash/" --add-data "prompts/:prompts/" --add-data "config/:config/" setup.py - name: Upload artifact uses: actions/upload-artifact@v3 with: name: fedora-setup path: dist/setup repository: 'https://gitea.akshun-lab.uk/akshun/setup-script'