name: test on: push: pull_request: jobs: test-linux: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: compiler: [gcc, clang] shared: [--shared, ""] steps: - uses: actions/checkout@v4 - name: dependencies run: | sudo apt install gcc-10 g++-10 libgcc-10-dev libunwind8-dev pip3 install colorama - name: libdwarf run: | cd .. cpptrace/ci/setup-prerequisites.sh - name: build and test run: | python3 ci/test-all-configs.py --${{matrix.compiler}} --default-config test-macos: runs-on: macos-14 strategy: fail-fast: false matrix: compiler: [gcc, clang] shared: [--shared, ""] steps: - uses: actions/checkout@v4 - name: libdwarf run: | cd .. cpptrace/ci/setup-prerequisites.sh - name: dependencies run: | python3 -m venv env env/bin/pip install colorama - name: build and test run: | env/bin/python ci/test-all-configs.py --${{matrix.compiler}} --default-config test-windows: runs-on: windows-2022 strategy: fail-fast: false matrix: compiler: [msvc, clang, gcc] shared: [--shared, ""] steps: - uses: actions/checkout@v4 - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 - name: dependencies run: | pip3 install colorama - name: libdwarf run: | if("${{matrix.compiler}}" -eq "gcc") { cd .. cpptrace/ci/setup-prerequisites-mingw.ps1 } - name: build and test run: | python3 ci/test-all-configs.py --${{matrix.compiler}} --default-config test-linux-all-configurations: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: compiler: [gcc, clang] shared: [--shared, ""] needs: test-linux steps: - uses: actions/checkout@v4 - name: dependencies run: | sudo apt install gcc-10 g++-10 libgcc-10-dev libunwind8-dev pip3 install colorama - name: libdwarf run: | cd .. cpptrace/ci/setup-prerequisites.sh - name: build and test run: | python3 ci/test-all-configs.py --${{matrix.compiler}} test-macos-all-configurations: runs-on: macos-14 strategy: fail-fast: false matrix: compiler: [gcc, clang] shared: [--shared, ""] needs: test-macos steps: - uses: actions/checkout@v4 - name: libdwarf run: | cd .. cpptrace/ci/setup-prerequisites.sh - name: dependencies run: | python3 -m venv env env/bin/pip install colorama - name: build and test run: | env/bin/python ci/test-all-configs.py --${{matrix.compiler}} test-windows-all-configurations: runs-on: windows-2022 strategy: fail-fast: false matrix: compiler: [msvc, clang, gcc] shared: [--shared, ""] needs: test-windows steps: - uses: actions/checkout@v4 - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 - name: dependencies run: | pip3 install colorama - name: libdwarf run: | if("${{matrix.compiler}}" -eq "gcc") { cd .. cpptrace/ci/setup-prerequisites-mingw.ps1 } - name: build and test run: | python3 ci/test-all-configs.py --${{matrix.compiler}} unittest-linux: runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: compiler: [g++-10, clang++-18] dwarf_version: [4, 5] steps: - uses: actions/checkout@v4 - name: dependencies run: | sudo apt install gcc-10 g++-10 libgcc-10-dev ninja-build libc++-dev cd .. cpptrace/ci/setup-prerequisites-unittest.sh - name: build and test run: | python3 ci/unittest.py --slice=compiler:${{matrix.compiler}} --slice=dwarf_version:${{matrix.dwarf_version}} unittest-linux-bazel: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: dependencies run: | sudo apt install -y libtool libncurses5 - name: test dbg run: | bazel test //... -c dbg - name: test opt run: | bazel test //... -c opt unittest-macos: runs-on: macos-14 steps: - uses: actions/checkout@v4 - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: "15.4" - name: dependencies run: | brew install ninja python3 -m venv env env/bin/pip install colorama cd .. cpptrace/ci/setup-prerequisites-unittest-macos.sh - name: build and test run: | env/bin/python ci/unittest.py unittest-windows: runs-on: windows-2022 strategy: fail-fast: false matrix: compiler: [cl, clang++] shared: [OFF] # TODO: Re-enable shared build_type: [Debug, RelWithDebInfo] steps: - uses: actions/checkout@v4 - name: Enable Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1.13.0 - name: build and test run: | mkdir build cd build cmake .. ` -DCMAKE_CXX_COMPILER=${{matrix.compiler}} ` -DCMAKE_C_COMPILER=${{matrix.compiler == 'clang++' && 'clang' || matrix.compiler}} ` -DBUILD_SHARED_LIBS=${{matrix.shared}} ` -DCPPTRACE_WERROR_BUILD=On ` -DCPPTRACE_BUILD_TESTING=On cmake --build . --config ${{matrix.build_type}} ./${{matrix.build_type}}/unittest # TODO: Macos, mingw