Skip to content

Make sure building can only happen in a build directory #392

Make sure building can only happen in a build directory

Make sure building can only happen in a build directory #392

Workflow file for this run

name: Build
on:
push:
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@v3
- 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
cp ../LICENSE.txt ../README.md ./
- name: Publish artifacts
uses: actions/upload-artifact@v3
with:
name: oceanpop-linux
path: |
oceanpop/OceanPop*.AppImage
oceanpop/LICENSE.txt
oceanpop/README.md
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-SDL2_image
mingw-w64-x86_64-SDL2_mixer
mingw-w64-x86_64-SDL2_ttf
mingw-w64-x86_64-jsoncpp
update: true
- name: Checkout
uses: actions/checkout@v3
- name: Build
run: |
mkdir oceanpop && cd oceanpop
cmake -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles" ..
cmake --build .
strip --strip-unneeded oceanpop.exe
cp ../LICENSE.txt ../README.md ./
- name: Publish artifacts
uses: actions/upload-artifact@v3
with:
name: oceanpop-windows
path: |
oceanpop/oceanpop.exe
oceanpop/assets
oceanpop/LICENSE.txt
oceanpop/README.md
PSP:
runs-on: ubuntu-latest
container: pspdev/pspdev:latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build
run: |
mkdir oceanpop && cd oceanpop
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${PSPDEV}/psp/share/pspdev.cmake ..
cmake --build .
cp ../LICENSE.txt ../README.md ./
- name: Publish artifacts
uses: actions/upload-artifact@v3
with:
name: oceanpop-psp
path: |
oceanpop/EBOOT.PBP
oceanpop/assets
oceanpop/LICENSE.txt
oceanpop/README.md
Vita:
runs-on: ubuntu-latest
container: vitasdk/vitasdk:latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build
run: |
mkdir oceanpop && cd oceanpop
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE="${VITASDK}/share/vita.toolchain.cmake" ..
cmake --build .
cp ../LICENSE.txt ../README.md ./
- name: Publish artifacts
uses: actions/upload-artifact@v3
with:
name: oceanpop-vita
path: |
oceanpop/oceanpop.vpk
oceanpop/LICENSE.txt
oceanpop/README.md
Release:
needs: [Linux, Windows, PSP, Vita]
if: ${{ github.ref_type == 'tag' }}
runs-on: ubuntu-latest
strategy:
matrix:
build: [linux, windows, psp, vita]
steps:
- uses: actions/download-artifact@v3
- name: Zip artifacts
run: |
zip -r oceanpop-${{matrix.build}}.zip oceanpop-${{matrix.build}}
- name: Release
uses: softprops/action-gh-release@v1
with:
files: oceanpop-${{matrix.build}}.zip
prerelease: true
name: OceanPop ${{ github.ref_name }}
tag_name: ${{ github.ref_name }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}