name: Test Dusk on: pull_request: branches: - main 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 # Emulator smoke tests: boot the built disc/EBOOT for a fixed window and # confirm the emulator doesn't crash. Not yet verified against a real # runner (no CI run has exercised these) -- continue-on-error so a # flaky/broken emulator step doesn't block the required Linux test job. run-tests-gamecube-dolphin: runs-on: ubuntu-latest continue-on-error: true 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 \ dolphin-emu xvfb 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 and boot it in Dolphin run: ./scripts/test-gamecube-dolphin.sh run-tests-wii-dolphin: runs-on: ubuntu-latest continue-on-error: true 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 \ dolphin-emu xvfb 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 and boot it in Dolphin run: ./scripts/test-wii-dolphin.sh run-tests-psp-ppsspp: runs-on: ubuntu-latest continue-on-error: true steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup pspdev uses: ./.github/actions/setup-pspdev - name: Install PPSSPPHeadless build dependencies run: | sudo apt-get update sudo apt-get install -y git cmake ninja-build libsdl2-dev zlib1g-dev - name: Build PPSSPPHeadless run: | git clone --recursive --depth 1 https://github.com/hrydgard/ppsspp.git /tmp/ppsspp cmake -S /tmp/ppsspp -B /tmp/ppsspp/build -DCMAKE_BUILD_TYPE=Release cmake --build /tmp/ppsspp/build --target PPSSPPHeadless -- -j$(nproc) echo "PPSSPP_HEADLESS_BIN=/tmp/ppsspp/build/PPSSPPHeadless" >> "$GITHUB_ENV" - name: Build PSP EBOOT and boot it in PPSSPPHeadless run: ./scripts/test-psp-ppsspp.sh