Add PS2 port #568
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: [push, pull_request] | |
| jobs: | |
| Linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y wget cmake libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libjsoncpp-dev libfuse2 | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build tinygettext | |
| run: | | |
| cd vendor/tinygettext | |
| cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DTINYGETTEXT_WITH_SDL=ON | |
| cd build | |
| make | |
| sudo make install | |
| - name: Build | |
| run: | | |
| mkdir oceanpop && cd oceanpop | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .. | |
| cmake --build . | |
| strip --strip-unneeded oceanpop | |
| make install DESTDIR=AppDir | |
| wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage | |
| chmod +x linuxdeploy*.AppImage | |
| ./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage | |
| - name: Publish artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: oceanpop-linux | |
| path: | | |
| oceanpop/OceanPop*.AppImage | |
| Windows: | |
| runs-on: windows-latest | |
| defaults: | |
| run: | |
| shell: msys2 {0} | |
| steps: | |
| - name: Install dependencies | |
| uses: msys2/setup-msys2@v2 | |
| with: | |
| msystem: MINGW64 | |
| install: >- | |
| mingw-w64-x86_64-gcc | |
| mingw-w64-x86_64-binutils | |
| mingw-w64-x86_64-make | |
| mingw-w64-x86_64-cmake | |
| mingw-w64-x86_64-pkgconf | |
| mingw-w64-x86_64-SDL2 | |
| mingw-w64-x86_64-jsoncpp | |
| update: true | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build | |
| run: | | |
| mkdir oceanpop && cd oceanpop | |
| cmake -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles" .. | |
| cmake --build . | |
| strip --strip-unneeded oceanpop.exe | |
| - name: Publish artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: oceanpop-windows | |
| path: | | |
| oceanpop/oceanpop.exe | |
| oceanpop/assets | |
| PS2: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ps2dev/ps2dev:latest | |
| steps: | |
| - name: Install dependencies | |
| run: | | |
| apk update | |
| apk add --no-cache git cmake build-base pkgconf zip gawk python3 py3-pip bash | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Configure (CMake) | |
| run: | | |
| mkdir -p oceanpop | |
| cd oceanpop | |
| cmake .. \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/share/ps2dev.cmake \ | |
| -DCMAKE_POLICY_VERSION_MINIMUM=3.5 | |
| cmake --build . | |
| - name: Publish artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: oceanpop-ps2 | |
| path: | | |
| oceanpop/oceanpop.elf | |
| oceanpop/assets | |
| PSP: | |
| runs-on: ubuntu-latest | |
| container: pspdev/pspdev:latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build | |
| run: | | |
| mkdir oceanpop && cd oceanpop | |
| psp-cmake -DCMAKE_BUILD_TYPE=Release .. | |
| cmake --build . | |
| - name: Publish artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: oceanpop-psp | |
| path: | | |
| oceanpop/EBOOT.PBP | |
| oceanpop/assets | |
| Vita: | |
| runs-on: ubuntu-latest | |
| container: vitasdk/vitasdk:latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build | |
| run: | | |
| mkdir oceanpop && cd oceanpop | |
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="${VITASDK}/share/vita.toolchain.cmake" .. | |
| cmake --build . | |
| - name: Publish artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: oceanpop-vita | |
| path: | | |
| oceanpop/oceanpop.vpk | |
| Wii: | |
| runs-on: ubuntu-latest | |
| container: devkitpro/devkitppc:latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Build json-cpp | |
| run: | | |
| cd vendor/jsoncpp | |
| /opt/devkitpro/portlibs/wii/bin/powerpc-eabi-cmake -S. -Bbuild \ | |
| -DJSONCPP_WITH_TESTS=OFF | |
| cd build | |
| make | |
| sudo make install | |
| - name: Build | |
| run: | | |
| mkdir oceanpop && cd oceanpop | |
| /opt/devkitpro/portlibs/wii/bin/powerpc-eabi-cmake -DCMAKE_BUILD_TYPE=Release .. | |
| make | |
| - name: Prepare package | |
| run: | | |
| ./platform/wii/make_release.sh oceanpop ${{ github.ref_name }} | |
| - name: Publish artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: oceanpop-wii | |
| path: | | |
| oceanpop/oceanpop*.zip | |
| Release: | |
| needs: [Linux, Windows, PSP, Vita, Wii, PS2] | |
| if: ${{ github.ref_type == 'tag' }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| max-parallel: 1 | |
| matrix: | |
| build: [linux, windows, psp, vita, wii, ps2] | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| - name: Zip artifacts | |
| run: | | |
| zip -r oceanpop-${{matrix.build}}.zip oceanpop-${{matrix.build}} | |
| - name: Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: oceanpop-${{matrix.build}}.zip | |
| prerelease: true | |
| name: OceanPop ${{ github.ref_name }} | |
| tag_name: ${{ github.ref_name }} | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |