This pull request enables Bazel build support for cpptrace. Please note that currently, only Linux is supported. Additional platform support will be added if necessary.
206 lines
5.5 KiB
YAML
206 lines
5.5 KiB
YAML
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
|
|
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
|
|
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
|