diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85c9c43..4e2229a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,16 +9,34 @@ jobs: test: name: Engine tests runs-on: ubuntu-latest - timeout-minutes: 15 + timeout-minutes: 30 steps: - name: Checkout uses: actions/checkout@v4 - - name: Install SDL3 + # Ubuntu 24.04 does not ship libsdl3-dev; build/install SDL3 from source (cached). + - name: Setup SDL3 + id: sdl + uses: libsdl-org/setup-sdl@main + with: + version: 3-latest + install-linux-dependencies: true + add-to-environment: true + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Export SDL3 paths for the linker run: | - sudo apt-get update - sudo apt-get install -y libsdl3-dev + PREFIX="${{ steps.sdl.outputs.prefix }}" + echo "PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH:-}" >> "$GITHUB_ENV" + echo "LIBRARY_PATH=${PREFIX}/lib:${LIBRARY_PATH:-}" >> "$GITHUB_ENV" + echo "LD_LIBRARY_PATH=${PREFIX}/lib:${LD_LIBRARY_PATH:-}" >> "$GITHUB_ENV" + echo "C_INCLUDE_PATH=${PREFIX}/include:${C_INCLUDE_PATH:-}" >> "$GITHUB_ENV" + # Help some linkers find the shared lib without rpath surprises + if [ -d "${PREFIX}/lib" ]; then + echo "${PREFIX}/lib" | sudo tee /etc/ld.so.conf.d/sdl3-ci.conf >/dev/null + sudo ldconfig + fi - name: Setup Odin uses: laytan/setup-odin@v2