Skip to content

Add PS2 port

Add PS2 port #556

Workflow file for this run

name: Build

Check failure on line 1 in .github/workflows/build.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/build.yml

Invalid workflow file

(Line: 78, Col: 1): Unexpected value 'PS2'
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 }}