name: build
on:
pull_request:
branches: [main, master, alpha, beta]
workflow_call:
workflow_dispatch:
concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
linux_nix:
if: ${{ github.event_name != 'workflow_dispatch' }}
uses: SpiralP/github-reusable-workflows/.github/workflows/build.yml@78cca1708ee40ff0f5cab7b971204653ddefcca0
windows:
name: Build Windows ${{ matrix.config.arch }}
runs-on: windows-2025
strategy:
fail-fast: false
matrix:
config:
- { arch: x86_64, target: x86_64-pc-windows-msvc, build-docs: true }
- { arch: i686, target: i686-pc-windows-msvc }
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
submodules: recursive
- uses: ./.github/actions/install-build-test
with:
target: ${{ matrix.config.target }}
- uses: ./.github/actions/build-docs
if: ${{ matrix.config.build-docs }}
with:
target: ${{ matrix.config.target }}
upload: ${{ github.event_name == 'workflow_dispatch' }}
linux:
name: Build Linux ${{ matrix.config.arch }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
config:
- { arch: x86_64, target: x86_64-unknown-linux-gnu }
- { arch: i686, target: i686-unknown-linux-gnu, multilib: true }
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
submodules: recursive
- name: Install multilib
if: ${{ matrix.config.multilib }}
run: |
sudo apt-get -y update
sudo apt-get -y install gcc-multilib g++-multilib
- uses: ./.github/actions/install-build-test
with:
target: ${{ matrix.config.target }}
mac:
name: Build MacOS ${{ matrix.config.arch }}
runs-on: macos-15
strategy:
fail-fast: false
matrix:
config:
- { arch: x86_64, target: x86_64-apple-darwin }
- { arch: aarch64, target: aarch64-apple-darwin }
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd with:
submodules: recursive
- uses: ./.github/actions/install-build-test
with:
target: ${{ matrix.config.target }}