Add PS2 port #556
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 git 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: Checkout (no submodules) | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| submodules: false | ||
| - name: Install dependencies | ||
| run: | | ||
| apk update | ||
| apk add --no-cache git cmake build-base zip gawk python3 py3-pip bash | ||
| - name: Init submodules | ||
| run: | | ||
| git submodule update --init --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 | ||
| - name: Build | ||
| run: | | ||
| cmake --build oceanpop | ||
| - name: Publish artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: oceanpop-ps2 | ||
| path: oceanpop/oceanpop.elf | ||
| 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 }} | ||