122 lines
3.8 KiB
YAML
122 lines
3.8 KiB
YAML
on:
|
|
push:
|
|
pull_request:
|
|
paths-ignore:
|
|
- '**.md'
|
|
|
|
name: Continuous integration
|
|
|
|
jobs:
|
|
ubuntu-build:
|
|
name: Ubuntu
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Checkout submodules
|
|
run: git submodule update --init --recursive
|
|
- name: Cache CMake build directory
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
build
|
|
key: ${{ runner.os }}-cmake-build-${{ github.sha }}
|
|
restore-keys: |
|
|
${{ runner.os }}-cmake-build-
|
|
- name: Install dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y
|
|
libasound2-dev
|
|
libgl-dev
|
|
libglu1-mesa-dev
|
|
libgtk-3-dev
|
|
libjack-dev
|
|
libmad0-dev
|
|
libpulse-dev
|
|
libudev-dev
|
|
libxinerama-dev
|
|
libx11-dev
|
|
libxrandr-dev
|
|
libxtst-dev
|
|
nasm
|
|
- name: Configure
|
|
run: cmake -B build -DWITH_FFMPEG_JOBS="$(nproc)"
|
|
- name: Build
|
|
run: cmake --build build --parallel "$(nproc)"
|
|
|
|
macos-build-arm64:
|
|
name: macOS (M1)
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Checkout submodules
|
|
run: git submodule update --init --recursive
|
|
- name: Cache CMake build directory
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
build
|
|
key: ${{ runner.os }}-${{ runner.arch }}-cmake-build-${{ github.sha }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ runner.arch }}-cmake-build-
|
|
- name: Install dependencies
|
|
run: brew install
|
|
nasm
|
|
- name: Configure
|
|
run: cmake -B build -DCMAKE_OSX_ARCHITECTURES=arm64 -DWITH_FFMPEG_JOBS="$(sysctl -n hw.logicalcpu)"
|
|
- name: Build
|
|
run: cmake --build build --parallel "$(sysctl -n hw.logicalcpu)"
|
|
|
|
macos-build-x86_64:
|
|
name: macOS (Intel)
|
|
runs-on: macos-13
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Checkout submodules
|
|
run: git submodule update --init --recursive
|
|
- name: Cache CMake build directory
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
build
|
|
key: ${{ runner.os }}-${{ runner.arch }}-cmake-build-${{ github.sha }}
|
|
restore-keys: |
|
|
${{ runner.os }}-${{ runner.arch }}-cmake-build-
|
|
- name: Install dependencies
|
|
run: brew install
|
|
nasm
|
|
- name: Configure
|
|
run: cmake -B build -DCMAKE_OSX_ARCHITECTURES=x86_64 -DWITH_FFMPEG_JOBS="$(sysctl -n hw.logicalcpu)"
|
|
- name: Build
|
|
run: cmake --build build --parallel "$(sysctl -n hw.logicalcpu)"
|
|
|
|
windows-build:
|
|
name: Windows
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Checkout submodules
|
|
run: git submodule update --init --recursive
|
|
- name: Setup MSBuild
|
|
uses: microsoft/setup-msbuild@v1
|
|
- name: Set up Visual Studio environment
|
|
run: |
|
|
$vsPath = &"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
|
|
&"$vsPath\VC\Auxiliary\Build\vcvarsall.bat" x64
|
|
shell: pwsh
|
|
- name: Configure
|
|
run: cmake -B build -DWITH_FFMPEG_JOBS="$env:NUMBER_OF_PROCESSORS"
|
|
- name: Build
|
|
run: cmake --build build --parallel "$env:NUMBER_OF_PROCESSORS"
|
|
|
|
validate-xml-docs:
|
|
name: Validate Lua.xml, LuaDocumentation.xml
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y
|
|
libxml2-utils
|
|
- name: Validate Lua.xml
|
|
run: xmllint --noout Docs/Luadoc/Lua.xml
|
|
- name: Validate LuaDocumentation.xml
|
|
run: xmllint --noout Docs/Luadoc/LuaDocumentation.xml
|