99 lines
3.3 KiB
YAML
99 lines
3.3 KiB
YAML
|
name: main
|
||
|
|
||
|
on: [ push, pull_request, workflow_dispatch ]
|
||
|
|
||
|
jobs:
|
||
|
cmake:
|
||
|
strategy:
|
||
|
matrix:
|
||
|
os: [ ubuntu-latest ]
|
||
|
profile: [ "Debug", "Release" ]
|
||
|
|
||
|
runs-on: ${{ matrix.os }}
|
||
|
|
||
|
steps:
|
||
|
- name: Get number of CPU cores
|
||
|
uses: SimenB/github-actions-cpu-cores@v1
|
||
|
id: cpu-cores
|
||
|
|
||
|
- uses: actions/checkout@v4
|
||
|
|
||
|
- name: "Install Dependencies"
|
||
|
run: |
|
||
|
sudo apt-get -qq update
|
||
|
sudo apt-get -qq install --no-install-recommends \
|
||
|
gettext \
|
||
|
libasound2-dev \
|
||
|
libbullet-dev \
|
||
|
libgnutls28-dev \
|
||
|
libopenxr-dev \
|
||
|
libqscintilla2-qt5-dev \
|
||
|
libsdl2-dev \
|
||
|
libvorbis-dev \
|
||
|
libvulkan-dev \
|
||
|
libwayland-dev \
|
||
|
libxcursor-dev \
|
||
|
libxkbcommon-dev \
|
||
|
libxrandr-dev \
|
||
|
qtbase5-dev
|
||
|
|
||
|
# Disabled due to warnings that break the debug build with -Werror
|
||
|
# libode-dev
|
||
|
# libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
|
||
|
|
||
|
- name: "Configure: ${{ matrix.profile }}"
|
||
|
run: |
|
||
|
cmake -B build_${{ matrix.profile }} -DCMAKE_BUILD_TYPE=${{ matrix.profile }}
|
||
|
|
||
|
- name: "Build: ${{ matrix.profile }}"
|
||
|
run: |
|
||
|
cmake --build build_${{ matrix.profile }} --parallel ${{ steps.cpu-cores.outputs.count }}
|
||
|
|
||
|
wasm:
|
||
|
strategy:
|
||
|
# Concurrent builds currently broken:
|
||
|
# https://github.com/mymindstorm/setup-emsdk/issues/20
|
||
|
matrix:
|
||
|
emsdk: [ "2.0.12" ] #, "3.1.8", "3.1.51" ]
|
||
|
profile: [ "rel" ] #, "dbg" ]
|
||
|
|
||
|
runs-on: ubuntu-latest
|
||
|
|
||
|
steps:
|
||
|
- name: Get number of CPU cores
|
||
|
uses: SimenB/github-actions-cpu-cores@v1
|
||
|
id: cpu-cores
|
||
|
|
||
|
- uses: actions/checkout@v4
|
||
|
|
||
|
- uses: mymindstorm/setup-emsdk@v13
|
||
|
with:
|
||
|
version: ${{ matrix.emsdk }}
|
||
|
actions-cache-folder: "emsdk-cache-${{ matrix.emsdk }}"
|
||
|
|
||
|
- name: Verify emscripten
|
||
|
run: emcc -v
|
||
|
|
||
|
- name: Build dependencies
|
||
|
working-directory: engine
|
||
|
run: |
|
||
|
make -j ${{ steps.cpu-cores.outputs.count }} makelibs FTE_TARGET=web
|
||
|
|
||
|
- name: Build wasm
|
||
|
working-directory: engine
|
||
|
run: |
|
||
|
# Currently fails to build
|
||
|
sed -r -i '/define Q3(CLIENT|SERVER)/d' common/config_fteqw.h
|
||
|
|
||
|
make -j ${{ steps.cpu-cores.outputs.count }} FTE_TARGET=web web-${{ matrix.profile }}
|
||
|
|
||
|
- name: Upload artifacts
|
||
|
uses: actions/upload-artifact@v4
|
||
|
with:
|
||
|
name: fteqw-web-${{ matrix.profile }}-em${{ matrix.emsdk }}
|
||
|
path: |
|
||
|
engine/*/ftewebgl.js
|
||
|
engine/*/ftewebgl.html
|
||
|
engine/*/ftewebgl.wasm
|
||
|
compression-level: 9
|