66 lines
2.2 KiB
YAML
66 lines
2.2 KiB
YAML
name: x86-64 AppImage
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main", "release-**"]
|
|
pull_request:
|
|
branches: [ "main", "dev" ]
|
|
workflow_call:
|
|
inputs:
|
|
build_name:
|
|
required: true
|
|
type: string
|
|
description: 'Build name passed as VC_BUILD_NAME define'
|
|
|
|
jobs:
|
|
build-appimage:
|
|
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-22.04
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: 'true'
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y build-essential libglfw3-dev libglfw3 libglew-dev libglew2.2 \
|
|
libglm-dev libpng-dev libopenal-dev libluajit-5.1-dev libvorbis-dev \
|
|
libcurl4-openssl-dev libgtest-dev cmake squashfs-tools valgrind
|
|
# fix luajit paths
|
|
sudo ln -s /usr/lib/x86_64-linux-gnu/libluajit-5.1.a /usr/lib/x86_64-linux-gnu/liblua5.1.a
|
|
sudo ln -s /usr/include/luajit-2.1 /usr/include/lua
|
|
# install EnTT
|
|
git clone https://github.com/skypjack/entt.git
|
|
cd entt/build
|
|
cmake -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Debug -DENTT_INSTALL=on ..
|
|
sudo make install
|
|
cd ../..
|
|
- name: Configure
|
|
run: cmake -S . -B build -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_BUILD_TYPE=Debug -DVOXELENGINE_BUILD_APPDIR=1 -DVOXELENGINE_BUILD_TESTS=ON -DVC_BUILD_NAME="${{ inputs.build_name }}"
|
|
- name: Build
|
|
run: cmake --build build -t install
|
|
- name: Run tests
|
|
run: ctest --test-dir build
|
|
- name: Run engine tests
|
|
timeout-minutes: 1
|
|
run: |
|
|
chmod +x build/VoxelEngine
|
|
chmod +x AppDir/usr/bin/vctest
|
|
AppDir/usr/bin/vctest -e build/VoxelEngine -d dev/tests -u build
|
|
- name: Build AppImage
|
|
uses: AppImageCrafters/build-appimage-action@fe2205a4d6056be47051f7b1b3811106e9814910
|
|
env:
|
|
UPDATE_INFO: gh-releases-zsync|MihailRis|VoxelEngine-Cpp|latest|*x86_64.AppImage.zsync
|
|
with:
|
|
recipe: dev/AppImageBuilder.yml
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: AppImage
|
|
path: './*.AppImage*'
|