on: push: pull_request: paths-ignore: - '**.md' name: Continuous integration jobs: ubuntu-build-x86_64: name: Ubuntu x86_64 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: 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: 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)" ubuntu-build-arm: name: Ubuntu ARM runs-on: ubuntu-24.04-arm steps: - uses: actions/checkout@v4 with: submodules: 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: 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)" -DWITH_MINIMAID=OFF - name: Build run: cmake --build build --parallel "$(nproc)" macos-build-arm64: name: macOS (M1) runs-on: macos-latest steps: - uses: actions/checkout@v4 with: submodules: 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 with: submodules: 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 with: submodules: recursive - name: Setup MSBuild uses: microsoft/setup-msbuild@v2 - 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