name: Build Dusk on: push: tags: - '*' branches: - gitea-actions jobs: run-tests: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y \ build-essential \ cmake \ python3 \ python3-pip \ python3-polib \ python3-pil \ libsdl2-dev \ libgl1-mesa-dev \ libzip-dev \ python3-dotenv \ python3-pyqt5 \ python3-opengl \ xz-utils \ liblzma-dev \ libbz2-dev \ zlib1g-dev \ git \ libssl-dev - name: Run tests run: ./scripts/test-linux.sh build-linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y \ build-essential \ cmake \ python3 \ python3-pip \ python3-polib \ python3-pil \ libsdl2-dev \ libgl1-mesa-dev \ libzip-dev \ python3-dotenv \ python3-pyqt5 \ python3-opengl \ xz-utils \ liblzma-dev \ libbz2-dev \ zlib1g-dev \ git \ libssl-dev - name: Build Linux run: ./scripts/build-linux.sh - name: Upload Linux binary uses: actions/upload-artifact@v3 with: name: dusk-linux path: build-linux/Dusk if-no-files-found: error build-psp: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup pspdev uses: ./.github/actions/setup-pspdev - name: Build PSP run: ./scripts/build-psp.sh - name: Move EBOOT.PBP to Dusk subfolder run: | mkdir -p ./git-artifcats/Dusk/PSP/GAME/Dusk cp build-psp/EBOOT.PBP ./git-artifcats/Dusk/PSP/GAME/Dusk/EBOOT.PBP - name: Upload PSP binary uses: actions/upload-artifact@v3 with: name: dusk-psp path: ./git-artifcats/Dusk if-no-files-found: error build-knulli: runs-on: ubuntu-latest container: image: debian:trixie steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v4 - name: Install dependencies run: | dpkg --add-architecture arm64 apt-get update apt-get install -y --no-install-recommends \ crossbuild-essential-arm64 \ ca-certificates \ pkg-config \ cmake \ make \ ninja-build \ git \ file \ python3 \ python3-pip \ python3-polib \ python3-pil \ python3-dotenv \ python3-pyqt5 \ python3-opengl \ liblua5.4-dev:arm64 \ xz-utils:arm64 \ libbz2-dev:arm64 \ zlib1g-dev:arm64 \ libzip-dev:arm64 \ libssl-dev:arm64 \ libsdl2-dev:arm64 \ liblzma-dev:arm64 \ libopengl0:arm64 \ libgl1:arm64 \ libegl1:arm64 \ libgles2:arm64 \ libgl1-mesa-dev:arm64 - name: Build Knulli run: ./scripts/build-knulli.sh - name: Move output to Dusk subfolder run: | mkdir -p ./git-artifcats/Dusk cp -r build-knulli/dusk ./git-artifcats/Dusk - name: Upload Knulli binary uses: actions/upload-artifact@v3 with: name: dusk-knulli path: ./git-artifcats/Dusk if-no-files-found: error build-gamecube: runs-on: ubuntu-latest container: image: ghcr.io/extremscorner/libogc2:latest steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v4 - name: Install additional dependencies run: | apt-get install -y \ python3-pip python3-polib python3-pil \ python3-dotenv python3-pyqt5 python3-opengl dkp-pacman -Syu --noconfirm dkp-pacman -S --needed --noconfirm \ gamecube-sdl2 ppc-liblzma ppc-libzip \ gamecube-tools ppc-libmad ppc-zlib-ng ppc-bzip2 ppc-zstd - name: Build GameCube run: ./scripts/build-gamecube.sh - name: Copy output files run: | mkdir -p ./git-artifcats/Dusk cp build-gamecube/Dusk.dol ./git-artifcats/Dusk/Dusk.dol cp build-gamecube/dusk.dsk ./git-artifcats/Dusk/dusk.dsk - name: Upload GameCube binary uses: actions/upload-artifact@v3 with: name: dusk-gamecube path: ./git-artifcats/Dusk if-no-files-found: error build-gamecube-iso: runs-on: ubuntu-latest container: image: ghcr.io/extremscorner/libogc2:latest steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v4 - name: Install additional dependencies run: | apt-get install -y \ python3-pip python3-polib python3-pil \ python3-dotenv python3-pyqt5 python3-opengl xorriso dkp-pacman -Syu --noconfirm dkp-pacman -S --needed --noconfirm \ gamecube-sdl2 ppc-liblzma ppc-libzip \ gamecube-tools ppc-libmad ppc-zlib-ng ppc-bzip2 ppc-zstd - name: Build GameCube ISO run: ./scripts/build-gamecube-iso.sh - name: Copy output files run: | mkdir -p ./git-artifcats/Dusk cp build-gamecube-iso/Dusk-NTSC-J.iso ./git-artifcats/Dusk/Dusk-NTSC-J.iso cp build-gamecube-iso/Dusk-NTSC-U.iso ./git-artifcats/Dusk/Dusk-NTSC-U.iso cp build-gamecube-iso/Dusk-PAL.iso ./git-artifcats/Dusk/Dusk-PAL.iso - name: Upload GameCube ISO uses: actions/upload-artifact@v3 with: name: dusk-gamecube-iso path: ./git-artifcats/Dusk if-no-files-found: error build-wii: runs-on: ubuntu-latest container: image: ghcr.io/extremscorner/libogc2:latest steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v4 - name: Install additional dependencies run: | apt-get install -y \ python3-pip python3-polib python3-pil \ python3-dotenv python3-pyqt5 python3-opengl dkp-pacman -Syu --noconfirm dkp-pacman -S --needed --noconfirm \ gamecube-sdl2 ppc-liblzma ppc-libzip \ gamecube-tools ppc-libmad ppc-zlib-ng ppc-bzip2 ppc-zstd - name: Build Wii run: ./scripts/build-wii.sh - name: Copy output files run: | mkdir -p ./git-artifcats/Dusk/apps/Dusk cp build-wii/boot.dol ./git-artifcats/Dusk/apps/Dusk/boot.dol cp build-wii/dusk.dsk ./git-artifcats/Dusk/apps/Dusk/dusk.dsk cp build-wii/meta.xml ./git-artifcats/Dusk/apps/Dusk/meta.xml - name: Upload Wii binary uses: actions/upload-artifact@v3 with: name: dusk-wii path: ./git-artifcats/Dusk if-no-files-found: error build-wii-iso: runs-on: ubuntu-latest container: image: ghcr.io/extremscorner/libogc2:latest steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v4 - name: Install additional dependencies run: | apt-get install -y \ python3-pip python3-polib python3-pil \ python3-dotenv python3-pyqt5 python3-opengl xorriso dkp-pacman -Syu --noconfirm dkp-pacman -S --needed --noconfirm \ gamecube-sdl2 ppc-liblzma ppc-libzip \ gamecube-tools ppc-libmad ppc-zlib-ng ppc-bzip2 ppc-zstd - name: Build Wii ISO run: ./scripts/build-wii-iso.sh - name: Copy output files run: | mkdir -p ./git-artifcats/Dusk cp build-wii-iso/Dusk-NTSC-J.iso ./git-artifcats/Dusk/Dusk-NTSC-J.iso cp build-wii-iso/Dusk-NTSC-U.iso ./git-artifcats/Dusk/Dusk-NTSC-U.iso cp build-wii-iso/Dusk-PAL.iso ./git-artifcats/Dusk/Dusk-PAL.iso - name: Upload Wii ISO uses: actions/upload-artifact@v3 with: name: dusk-wii-iso path: ./git-artifcats/Dusk if-no-files-found: error