Repository navigation
Prepare 3.10.281.1 with isolated SQLite and provider-aware packages #6813
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: C/C++ CI on Linux and Mac | |
| on: | |
| push: | |
| branches: | |
| - master | |
| - main | |
| - dev | |
| - dev/* | |
| - release/* | |
| - buildme/* | |
| - fix/* | |
| pull_request: | |
| branches: | |
| - master | |
| - main | |
| - dev | |
| schedule: | |
| - cron: 0 2 * * 1-5 | |
| # Least-privilege GITHUB_TOKEN scope: this workflow only checks out source | |
| # and runs the Linux/Mac build matrix. Explicit block satisfies CodeQL rule | |
| # actions/missing-workflow-permissions if Actions analysis is enabled. | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| build-runner: | |
| name: Build runner contracts (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 | |
| - name: Verify test-runner failure propagation | |
| run: python3 tests/build-runner-tests.py | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CMAKE_POLICY_VERSION_MINIMUM: "3.5" | |
| strategy: | |
| matrix: | |
| config: [release, debug] | |
| os: [ubuntu-latest, macOS-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 | |
| - name: Initialize googletest | |
| run: git submodule update --init --depth=1 third_party/googletest | |
| - name: Test ${{ matrix.os }} ${{ matrix.config }} | |
| run: ./build-tests.sh ${{ matrix.config }} | |
| device-id-optout: | |
| name: Device-ID opt-out (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CMAKE_POLICY_VERSION_MINIMUM: "3.5" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macOS-latest, windows-2022] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 | |
| - name: Initialize googletest | |
| run: git submodule update --init --depth=1 third_party/googletest | |
| - name: Test Linux/macOS without native device-ID collection | |
| if: runner.os != 'Windows' | |
| env: | |
| CMAKE_OPTS: -DMATSDK_ENABLE_DEVICE_ID=OFF | |
| run: ./build-tests.sh debug | |
| - name: setup-msbuild | |
| if: runner.os == 'Windows' | |
| uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 | |
| with: | |
| vs-version: '[17,)' | |
| - name: Test Windows without native device-ID collection | |
| if: runner.os == 'Windows' | |
| shell: cmd | |
| run: build-tests.cmd x64 Debug "tests\device-id-optout.props" WinHTTP | |
| - name: Verify vcpkg feature mapping | |
| run: cmake -P tests/vcpkg/device-id-feature-tests.cmake | |
| public-headers: | |
| name: Public header gate (GCC/Clang) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 | |
| - name: Install clang | |
| run: sudo apt-get update && sudo apt-get install -y clang | |
| - name: Compile each public header standalone under strict flags | |
| run: bash tests/headers/check_public_headers.sh | |
| no-exceptions: | |
| name: Full SDK without C++ exceptions (${{ matrix.os }}, ${{ matrix.compiler }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| compiler: gcc | |
| cc: gcc | |
| cxx: g++ | |
| - os: ubuntu-latest | |
| compiler: clang | |
| cc: clang | |
| cxx: clang++ | |
| - os: macos-latest | |
| compiler: appleclang | |
| cc: clang | |
| cxx: clang++ | |
| env: | |
| CC: ${{ matrix.cc }} | |
| CXX: ${{ matrix.cxx }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 | |
| - name: Install build dependencies | |
| if: runner.os == 'Linux' | |
| run: sudo apt-get update && sudo apt-get install -y clang libcurl4-openssl-dev libsqlite3-dev zlib1g-dev | |
| - name: Configure | |
| run: >- | |
| cmake -S tests/no-exceptions -B out-no-exceptions | |
| -DCMAKE_BUILD_TYPE=Debug | |
| - name: Compile full SDK | |
| run: >- | |
| cmake --build out-no-exceptions --target no-exceptions-smoke --parallel 2 | |
| - name: Exercise no-exceptions runtime failure paths | |
| run: ctest --test-dir out-no-exceptions --output-on-failure | |
| - name: Public headers and exception macro regression | |
| if: runner.os == 'macOS' | |
| run: bash tests/headers/check_public_headers.sh |