diff --git a/.github/actions/setup-devkitpro/action.yml b/.github/actions/setup-devkitpro/action.yml new file mode 100644 index 00000000..999bdcf0 --- /dev/null +++ b/.github/actions/setup-devkitpro/action.yml @@ -0,0 +1,45 @@ +name: Setup devkitPro +description: Install devkitPro with GameCube/Wii packages on an Ubuntu runner + +runs: + using: composite + steps: + - name: Install apt dependencies + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y \ + cmake \ + python3 \ + python3-pip \ + python3-polib \ + python3-pil \ + python3-dotenv \ + python3-pyqt5 \ + python3-opengl \ + xorriso + - name: Install devkitPro pacman + shell: bash + run: | + wget -q https://apt.devkitpro.org/install-devkitpro-pacman \ + -O /tmp/install-devkitpro-pacman + chmod +x /tmp/install-devkitpro-pacman + sudo /tmp/install-devkitpro-pacman + echo "DEVKITPRO=/opt/devkitpro" >> $GITHUB_ENV + echo "DEVKITPPC=/opt/devkitpro/devkitPPC" >> $GITHUB_ENV + echo "/opt/devkitpro/tools/bin" >> $GITHUB_PATH + echo "/opt/devkitpro/devkitPPC/bin" >> $GITHUB_PATH + - name: Install devkitPro GameCube/Wii packages + shell: bash + run: | + sudo dkp-pacman -S --needed --noconfirm \ + gamecube-dev \ + gamecube-sdl2 \ + ppc-liblzma \ + ppc-libzip \ + libogc2 \ + gamecube-tools \ + ppc-libmad \ + ppc-zlib-ng \ + ppc-bzip2 \ + ppc-zstd diff --git a/.github/actions/setup-pspdev/action.yml b/.github/actions/setup-pspdev/action.yml new file mode 100644 index 00000000..8db48e7e --- /dev/null +++ b/.github/actions/setup-pspdev/action.yml @@ -0,0 +1,20 @@ +name: Setup pspdev +description: Install the pspdev PSP toolchain on an Ubuntu runner + +runs: + using: composite + steps: + - name: Install dependencies + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y cmake python3 python3-pip python3-dotenv + - name: Install pspdev toolchain + shell: bash + run: | + wget -q \ + https://github.com/pspdev/pspdev/releases/latest/download/pspdev-ubuntu-latest-x86_64.tar.gz \ + -O /tmp/pspdev.tar.gz + sudo tar -xzf /tmp/pspdev.tar.gz -C /usr/local + echo "PSPDEV=/usr/local/pspdev" >> $GITHUB_ENV + echo "/usr/local/pspdev/bin" >> $GITHUB_PATH diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a6fab5d6..c95e2100 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -74,54 +74,24 @@ jobs: # path: build-linux/Dusk # if-no-files-found: error - build-psp: - 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 \ - cmake \ - python3 \ - python3-pip \ - python3-dotenv - - name: Install pspdev toolchain - run: | - wget -q \ - https://github.com/pspdev/pspdev/releases/latest/download/pspdev-ubuntu-latest-x86_64.tar.gz \ - -O /tmp/pspdev.tar.gz - sudo tar -xzf /tmp/pspdev.tar.gz -C /usr/local - echo "PSPDEV=/usr/local/pspdev" >> $GITHUB_ENV - echo "/usr/local/pspdev/bin" >> $GITHUB_PATH - - 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-vita: + # build-psp: # runs-on: ubuntu-latest # steps: # - name: Checkout repository # uses: actions/checkout@v4 - # - name: Set up Docker - # uses: docker/setup-docker-action@v5 - # - name: Build Vita - # run: ./scripts/build-vita-docker.sh - # - name: Upload Vita binary + # - 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-vita - # path: build-vita/Dusk.vpk + # name: dusk-psp + # path: ./git-artifcats/Dusk # if-no-files-found: error # build-knulli: @@ -165,27 +135,27 @@ jobs: # path: ./git-artifcats/Dusk # if-no-files-found: error - # build-gamecube-iso: - # runs-on: ubuntu-latest - # steps: - # - name: Checkout repository - # uses: actions/checkout@v4 - # - name: Set up Docker - # uses: docker/setup-docker-action@v5 - # - name: Build GameCube ISO - # run: ./scripts/build-gamecube-iso-docker.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-gamecube-iso: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Setup devkitPro + uses: ./.github/actions/setup-devkitpro + - 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