vengi/.github/workflows/main.yml

226 lines
7.2 KiB
YAML

name: Build
on:
push:
branches:
- master
tags:
- '*'
pull_request:
branches:
- master
jobs:
mac:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v1
- name: Setup
run: brew install libuv sdl2 libpq sdl2_mixer python glslang ninja
- name: Build
run: |
mkdir build
cd build
cmake .. -DHOT_RELOAD_ANIM=0 -GNinja
cmake --build .
- name: Test
run: |
cd build
ctest -V -R tests-animation$
ctest -V -R tests-app$
ctest -V -R tests-attrib$
ctest -V -R tests-command$
ctest -V -R tests-computeshadertool$
ctest -V -R tests-cooldown$
ctest -V -R tests-core$
ctest -V -R tests-eventmgr$
ctest -V -R tests-io$
ctest -V -R tests-math$
ctest -V -R tests-metric$
ctest -V -R tests-persistence$
ctest -V -R tests-poi$
ctest -V -R tests-shadertool$
ctest -V -R tests-stock$
ctest -V -R tests-util$
ctest -V -R tests-uuidutil$
ctest -V -R tests-video$
ctest -V -R tests-voxedit-util$
ctest -V -R tests-voxel$
ctest -V -R tests-voxelformat$
ctest -V -R tests-voxelgenerator$
ctest -V -R tests-voxelrender$
ctest -V -R tests-voxelutil$
ctest -V -R tests-voxelworld$
ctest -V -R tests-voxelworldrender$
packages:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
- name: Setup
run: |
sudo apt-get update
sudo apt-get install cmake debhelper devscripts build-essential lintian libsdl2-dev libuv1-dev libsdl2-mixer-dev postgresql-server-dev-all libpq-dev libenet-dev opencl-c-headers wayland-protocols pkg-config uuid-dev python3 flatbuffers-compiler libflatbuffers-dev
- name: Ubuntu
run: |
debuild -b -ui -uc -us
mv ../*.deb .
- name: Upload the ubuntu artifacts
uses: actions/upload-artifact@v2
with:
name: debian
path: vengi*.deb
- name: Upload the ubuntu release artifacts
if: startsWith(github.ref, 'refs/tags/')
uses: Roang-zero1/github-upload-release-artifacts-action@master
with:
args: vengi*.deb
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
linux:
runs-on: ubuntu-20.04
services:
postgres:
image: postgres:13
env:
POSTGRES_DB: enginetest
POSTGRES_PASSWORD: engine
POSTGRES_PORT: 5432
POSTGRES_USER: vengi
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v1
- name: Setup
run: |
sudo apt-get update
sudo apt-get install libsdl2-dev postgresql-server-dev-all libpq-dev libenet-dev opencl-c-headers wayland-protocols pkg-config uuid-dev ninja-build python3 flatbuffers-compiler libflatbuffers-dev
- name: Linux
run: |
mkdir build
cd build
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release
cmake --build .
- name: Test
run: |
cd build
ctest -V -R tests-animation$
ctest -V -R tests-app$
ctest -V -R tests-attrib$
ctest -V -R tests-command$
ctest -V -R tests-computeshadertool$
ctest -V -R tests-cooldown$
ctest -V -R tests-core$
ctest -V -R tests-eventmgr$
ctest -V -R tests-io$
ctest -V -R tests-math$
ctest -V -R tests-metric$
ctest -V -R tests-persistence$
ctest -V -R tests-poi$
ctest -V -R tests-shadertool$
ctest -V -R tests-stock$
ctest -V -R tests-util$
ctest -V -R tests-uuidutil$
ctest -V -R tests-video$
ctest -V -R tests-voxedit-util$
ctest -V -R tests-voxel$
ctest -V -R tests-voxelformat$
ctest -V -R tests-voxelgenerator$
ctest -V -R tests-voxelrender$
ctest -V -R tests-voxelutil$
ctest -V -R tests-voxelworld$
ctest -V -R tests-voxelworldrender$
ctest -V -R shelltests
windows:
runs-on: windows-2022
steps:
- uses: actions/checkout@v1
- name: Setup
uses: lukka/run-vcpkg@v6
id: runvcpkg
with:
vcpkgGitCommitId: 1b1ae50e1a69f7c659bd7d731e80b358d21c86ad
vcpkgTriplet: 'x64-windows'
vcpkgArguments: 'libpq glslang'
- name: Build
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DHOT_RELOAD_ANIM=0
cmake --build .
- name: install
run: |
cd build
cmake --install . --component voxedit --prefix voxedit-install
cmake --install . --component mapview --prefix mapview-install
cmake --install . --component voxconvert --prefix voxconvert-install
- name: Tests
run: |
cd build
ctest -V -C Release -R tests-animation$
ctest -V -C Release -R tests-app$
ctest -V -C Release -R tests-attrib$
ctest -V -C Release -R tests-command$
ctest -V -C Release -R tests-computeshadertool$
ctest -V -C Release -R tests-cooldown$
ctest -V -C Release -R tests-core$
ctest -V -C Release -R tests-eventmgr$
ctest -V -C Release -R tests-io$
ctest -V -C Release -R tests-math$
ctest -V -C Release -R tests-metric$
ctest -V -C Release -R tests-persistence$
ctest -V -C Release -R tests-poi$
ctest -V -C Release -R tests-shadertool$
ctest -V -C Release -R tests-stock$
ctest -V -C Release -R tests-util$
ctest -V -C Release -R tests-uuidutil$
ctest -V -C Release -R tests-video$
ctest -V -C Release -R tests-voxedit-util$
ctest -V -C Release -R tests-voxel$
ctest -V -C Release -R tests-voxelformat$
ctest -V -C Release -R tests-voxelgenerator$
ctest -V -C Release -R tests-voxelrender$
ctest -V -C Release -R tests-voxelutil$
ctest -V -C Release -R tests-voxelworld$
- name: Upload the voxedit artifacts
uses: actions/upload-artifact@v2
with:
name: voxedit
path: build/voxedit-install/
- name: Upload the mapview artifacts
uses: actions/upload-artifact@v2
with:
name: mapview
path: build/mapview-install/
- name: Upload the voxconvert artifacts
uses: actions/upload-artifact@v2
with:
name: voxconvert
path: build/voxconvert-install/