name: Build on: [push, pull_request] jobs: mac: runs-on: macos-10.15 steps: - uses: actions/checkout@v1 - name: Setup run: brew install libuv sdl2 libpq sdl2_mixer python - name: Build run: | mkdir build cd build cmake .. -DHOT_RELOAD_ANIM=0 make -j 2 - 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-12 libpq-dev libenet-dev opencl-c-headers wayland-protocols pkg-config uuid-dev python3 - 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-12 libpq-dev libenet-dev opencl-c-headers wayland-protocols pkg-config uuid-dev ninja-build python3 - 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$ windows: runs-on: windows-latest steps: - uses: actions/checkout@v1 - name: Setup uses: lukka/run-vcpkg@v6 id: runvcpkg with: vcpkgGitCommitId: 2f7a104d4d6f1f3790db929f85a4086aa6973d7f vcpkgTriplet: 'x64-windows' vcpkgArguments: 'libpq' - 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/