196 lines
5.4 KiB
YAML
196 lines
5.4 KiB
YAML
name: test
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
# TODO: Test statically linked
|
|
|
|
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-22.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: [g++-10, clang++-14]
|
|
shared: [OFF, ON]
|
|
build_type: [Debug, RelWithDebInfo]
|
|
has_dl_find_object: [OFF, ON]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: dependencies
|
|
run: |
|
|
sudo apt install gcc-10 g++-10 libgcc-10-dev ninja-build
|
|
- name: build and test
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake .. \
|
|
-GNinja \
|
|
-DCMAKE_CXX_COMPILER=${{matrix.compiler}} \
|
|
-DCMAKE_C_COMPILER=${{matrix.compiler == 'g++-10' && 'gcc-10' || 'clang-14'}} \
|
|
-DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
|
|
-DBUILD_SHARED_LIBS=${{matrix.shared}} \
|
|
-DHAS_DL_FIND_OBJECT=${{matrix.has_dl_find_object}} \
|
|
-DCPPTRACE_WERROR_BUILD=On \
|
|
-DCPPTRACE_BUILD_TESTING=On
|
|
ninja
|
|
./unittest
|
|
bash -c "exec -a u ./unittest"
|
|
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
|