Update c-cpp.yml (add windows build stage) (#66) #379
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: | |
permissions: | |
checks: write | |
pull-requests: write | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Checkout submodules | |
run: git submodule update --init --recursive | |
- name: apt-get update | |
run: sudo apt-get update | |
- name: Install packages | |
run: sudo apt-get install libcmocka-dev liburing-dev cmake ninja-build | |
- name: configure | |
run: | | |
mkdir build | |
echo 'add_compile_options(-fsanitize=address)' > build/local.cmake | |
echo 'add_link_options(-fsanitize=address)' >> build/local.cmake | |
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Debug | |
- name: make | |
run: cmake --build build | |
- name: test | |
run: cmake --build build --target test | |
- name: test-log | |
if: failure() | |
run: cat build/Testing/Temporary/LastTest.log | |
- name: Publish Unit Test Results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
if: always() | |
with: | |
files: build/*.xml | |
check_name: Unit Test Results (Linux) | |
windows-build: | |
permissions: | |
checks: write | |
pull-requests: write | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Checkout submodules | |
run: git submodule update --init --recursive | |
- name: Install Packages using MSYS2 | |
run: | | |
choco install msys2 -y | |
- name: Install Additional Packages | |
run: | | |
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.." | |
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" | |
setx PATH "%PATH%;C:\tools\msys64\mingw64\bin;C:\tools\msys64\usr\bin" | |
refreshenv | |
pacman -Syu --noconfirm | |
pacman -S --noconfirm mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja mingw-w64-x86_64-cmocka | |
ls -l C:\tools\msys64\mingw64\bin | |
- name: Verify Installation | |
run: | | |
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.." | |
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" | |
setx PATH "C:\tools\msys64\mingw64\bin;C:\tools\msys64\usr\bin;%PATH%" | |
refreshenv | |
gcc --version | |
cmake --version | |
ninja --version | |
- name: Configure with CMake and Build with Ninja | |
run: | | |
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.." | |
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" | |
setx PATH "C:\tools\msys64\mingw64\bin;C:\tools\msys64\usr\bin;%PATH%" | |
refreshenv | |
mkdir build | |
cd build | |
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Debug | |
ninja | |
- name: Run Tests | |
run: | | |
$env:ChocolateyInstall = Convert-Path "$((Get-Command choco).Path)\..\.." | |
Import-Module "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1" | |
setx PATH "C:\tools\msys64\mingw64\bin;C:\tools\msys64\usr\bin;%PATH%" | |
refreshenv | |
cd build | |
ctest -C Debug | |
- name: test-log | |
if: always() | |
run: | | |
type build\Testing\Temporary\LastTest.log | |