no comment #38
This file contains 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: | |
push: | |
branches: ["master"] | |
pull_request: | |
branches: ["master"] | |
jobs: | |
build_on_ubuntu_22_04: | |
runs-on: [ubuntu-22.04] | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
- name: "Checkout capicxx-core-runtime" | |
uses: actions/checkout@v4 | |
with: | |
repository: COVESA/capicxx-core-runtime | |
path: "capicxx-core-runtime" | |
- name: "Install dbus" | |
run: | | |
wget http://dbus.freedesktop.org/releases/dbus/dbus-1.13.6.tar.gz | |
tar -xzf dbus-1.13.6.tar.gz | |
for patch in src/dbus-patches/*.patch | |
do | |
patch -d dbus-1.13.6 -Np1 -i "$PWD/$patch" || continue | |
done | |
cmake -B build-dbus/libdbus -D DBUS_BUILD_TESTS=N -D CMAKE_INSTALL_PREFIX=install -S dbus-1.13.6/cmake | |
cmake --build build-dbus/libdbus | |
cmake --install build-dbus/libdbus --strip | |
- name: "Checkout googletest" | |
uses: actions/checkout@v4 | |
with: | |
repository: google/googletest | |
ref: v1.12.0 | |
path: "googletest" | |
- name: "Build capicxx-core-runtime" | |
run: | | |
cmake -S capicxx-core-runtime -B build-core-runtime -D CMAKE_INSTALL_PREFIX=install | |
cmake --build build-core-runtime --target install | |
- name: "Build capicxx-dbus-runtime" | |
run: | | |
cmake -S . -B build-dbus-runtime -D GTEST_ROOT=${{ runner.workspace }}/capicxx-dbus-runtime/googletest -D CMAKE_PREFIX_PATH=install -D CMAKE_INSTALL_PREFIX=install | |
cmake --build build-dbus-runtime --target build_tests | |
cmake --install build-dbus-runtime --strip | |
- name: "Run tests" | |
run: | | |
ls -l ${{ github.workspace }}/install/lib | |
export LD_LIBRARY_PATH=${{ github.workspace }}/install/lib | |
export COMMONAPI_CONFIG=${{ github.workspace }}/src/test/commonapi-dbus.ini | |
env -C build-dbus-runtime ctest -V | |
build_on_windows_latest: | |
runs-on: windows-latest | |
steps: | |
- name: "Checkout" | |
uses: actions/checkout@v4 | |
- name: "Checkout capicxx-core-runtime" | |
uses: actions/checkout@v4 | |
with: | |
repository: COVESA/capicxx-core-runtime | |
path: "capicxx-core-runtime" | |
- name: "Checkout googletest" | |
uses: actions/checkout@v4 | |
with: | |
repository: google/googletest | |
ref: v1.12.0 | |
path: "googletest" | |
- name: "Checkout expat" | |
uses: actions/checkout@v4 | |
with: | |
repository: libexpat/libexpat | |
ref: R_2_2_9 | |
path: "libexpat" | |
# - name: Windows - Install boost 1.83.0 with gcc and x86 | |
# uses: MarkusJx/[email protected] | |
# id: windows-gcc-1_83-x86 | |
# with: | |
# boost_version: 1.83.0 | |
# platform: windows | |
# boost_install_dir: C:\runner | |
# toolset: msvc | |
# arch: x86 | |
# cache: true | |
- name: "Build expat" | |
run: | | |
cmake -A x64 -B build-expat -D CMAKE_INSTALL_PREFIX=${{ runner.workspace }}\install -S ${{ runner.workspace }}\capicxx-dbus-runtime\libexpat\expat | |
cmake --build build-expat --config Release --target install | |
- name: "Install dbus" | |
run: | | |
curl -L -o dbus-1.13.6.tar.gz http://dbus.freedesktop.org/releases/dbus/dbus-1.13.6.tar.gz | |
tar -zxvf dbus-1.13.6.tar.gz | |
$dbus = "${{ runner.workspace }}\capicxx-dbus-runtime\dbus-1.13.6" | |
$patches = Get-ChildItem -Path src\dbus-patches -Filter "*.patch" | |
Write-Output "DBus Path: $dbus" | |
if (Test-Path $dbus) { | |
Write-Output "DBus directory exists." | |
} else { | |
Write-Output "Error: DBus directory does not exist." | |
exit 1 | |
} | |
Write-Output "Patch Files:" | |
foreach ($patch in $patches) { | |
Write-Output $patch.FullName | |
} | |
foreach ($patch in $patches) { | |
$patchPath = $patch.FullName -replace '\', '/' | |
Write-Output "Applying patch: $patchPath" | |
git -C $dbus apply --verbose --ignore-whitespace $patchPath | |
if ($LASTEXITCODE -ne 0) { | |
Write-Output "Failed to apply patch: $patchPath" | |
continue | |
} | |
} | |
cmake -A x64 -B build-dbus\libdbus -D DBUS_BUILD_TESTS=N -D CMAKE_INSTALL_PREFIX=${{ runner.workspace }}\install -S ${{ runner.workspace }}\capicxx-dbus-runtime\dbus-1.13.6\cmake | |
cmake --build build-dbus\libdbus --config Release --target install | |
- name: List capi src | |
run: ls $env:GITHUB_WORKSPACE\src | |
- name: Verify dbus content | |
run: ls $env:GITHUB_WORKSPACE\dbus-1.13.6 | |
- name: "Build capicxx-core-runtime" | |
run: | | |
cmake -S capicxx-core-runtime -B build-core-runtime -D BOOST_ROOT=C:\runner\boost -DCMAKE_INSTALL_PREFIX=${{ runner.workspace }}\install | |
cmake --build build-core-runtime --target install | |
- name: "Build capicxx-dbus-runtime" | |
run: | | |
cmake -B build-dbus-runtime -D GTEST_ROOT=${{ runner.workspace }}\capicxx-dbus-runtime\googletest -D CMAKE_PREFIX_PATH=${{ runner.workspace }}\install -D CMAKE_INSTALL_PREFIX=${{ runner.workspace }}\install | |
cmake --build build-dbus-runtime --target build_tests install |