name: CI on: push: pull_request: jobs: build-vcpkg: name: build vcpkg runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] fail-fast: false steps: - uses: actions/checkout@v2 - name: Install cargo-vcpkg run: cargo install cargo-vcpkg - name: Install dependencies run: cargo vcpkg -v build - name: Build SDL2 shell: bash env: CI_BUILD_FEATURES: "use-vcpkg static-link gfx image ttf mixer" RUST_TEST_THREADS: 1 run: | set -xeuo pipefail rustc --version cargo --version cargo build --features "${CI_BUILD_FEATURES}" cargo build --examples --features "${CI_BUILD_FEATURES}" cargo test --features "${CI_BUILD_FEATURES}" build-bundled: name: build bundled runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: feature: ["", "static-link"] build_mode: ["", "--release"] os: [macos-latest, ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v2 - name: Build SDL2 shell: bash env: # Bundled doesn't yet support gfx, image, ttf, mixer. CI_BUILD_FEATURES: "bundled" RUST_TEST_THREADS: 1 run: | set -xeuo pipefail rustc --version cargo --version cargo build --features "${CI_BUILD_FEATURES} ${{matrix.feature}}" ${{matrix.build_mode}} cargo build --examples --features "${CI_BUILD_FEATURES} ${{matrix.feature}}" ${{matrix.build_mode}} cargo test --features "${CI_BUILD_FEATURES} ${{matrix.feature}}" ${{matrix.build_mode}} build-linux: name: build linux pkg-config runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 - name: Install dependencies run: | sudo apt-get update -y -qq sudo apt-get install -y libsdl2-dev libsdl2-mixer-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-ttf-dev - name: Build SDL2 shell: bash env: CI_BUILD_FEATURES: "gfx image ttf mixer" RUST_TEST_THREADS: 1 run: | set -xeuo pipefail rustc --version cargo --version # SDL 2.0.10 so no hidapi cargo build --no-default-features --features "${CI_BUILD_FEATURES}" cargo test --no-default-features --features "${CI_BUILD_FEATURES}"