name: Build # Scaffolding CI: proves the CMake toolchain configures and builds on all # three platforms the design doc names. It does not yet link livekit-ffi # or produce a real OBS-installable package -- see README.md. on: push: pull_request: jobs: linux: name: Linux (ubuntu-latest) runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install build dependencies run: | sudo apt-get update -qq sudo apt-get install -y -qq cmake ninja-build libobs-dev - name: Configure run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release - name: Build run: cmake --build build - name: Test (core library) run: ctest --test-dir build --output-on-failure macos: name: macOS (macos-latest) runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install build dependencies run: brew install cmake ninja - name: Configure # libobs is not expected to be found here yet (no Homebrew # formula / SDK download wired up in this pass) -- the top-level # CMakeLists.txt falls back to building only the core library in # that case. See README.md. run: cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release - name: Build run: cmake --build build - name: Test (core library) run: ctest --test-dir build --output-on-failure windows: name: Windows (windows-latest) runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Configure # Same story as macOS: no OBS SDK available yet on this runner, # so this proves the core library + MSVC toolchain only. run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release - name: Build run: cmake --build build --config Release - name: Test (core library) run: ctest --test-dir build -C Release --output-on-failure