Skip to content

Add MacOS automated build #600

Add MacOS automated build

Add MacOS automated build #600

Workflow file for this run

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 --no-install-recommends git ca-certificates g++ make cmake zlib1g-dev libasound-dev libxkbcommon-dev libdrm-dev libgl1-mesa-dev libgbm-dev libwayland-dev libdecor-0-dev
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
run: |
mkdir oceanpop && cd oceanpop
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DSDL_X11=OFF ..
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
MacOS:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
run: |
mkdir oceanpop && cd oceanpop
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
strip --strip-unneeded oceanpop
- name: Publish artifacts
uses: actions/upload-artifact@v4
with:
name: oceanpop-macos
path: |
oceanpop/oceanpop
oceanpop/assets
PS2:
runs-on: ubuntu-latest
container:
image: ps2dev/ps2dev:latest
steps:
- name: Install dependencies
run: |
apk add --no-cache gmp mpc1 mpfr4 make pkgconf cmake git
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build
run: |
mkdir oceanpop && cd oceanpop
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=$PS2DEV/share/ps2dev.cmake ..
cmake --build .
mips64r5900el-ps2-elf-strip --strip-unneeded oceanpop.elf
- 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
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 }}