Skip to content

Build(deps): bump prefix-dev/setup-pixi from 0.10.0 to 0.10.2 #65

Build(deps): bump prefix-dev/setup-pixi from 0.10.0 to 0.10.2

Build(deps): bump prefix-dev/setup-pixi from 0.10.0 to 0.10.2 #65

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
quality:
name: Format and static analysis
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
- uses: prefix-dev/setup-pixi@v0.10.2
with:
cache: true
- name: Check formatting
run: pixi run format-check
- name: Run clang-tidy
run: pixi run tidy
- name: Validate workflow configuration
run: pixi run workflow-check
- name: Test release publication states
run: bash test/release_publish_test.sh
build-and-test:
name: ${{ matrix.compiler.name }} ${{ matrix.build_type }} ${{ matrix.library }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
compiler:
- name: GCC
cxx: g++
- name: Clang
cxx: clang++
build_type: [Debug, Release]
library: [shared, static]
include:
- library: shared
build_shared: "ON"
- library: static
build_shared: "OFF"
steps:
- uses: actions/checkout@v7
- uses: prefix-dev/setup-pixi@v0.10.2
with:
cache: true
- name: Configure
run: >-
pixi run cmake -S . -B build/ci -G Ninja
-DCMAKE_CXX_COMPILER=${{ matrix.compiler.cxx }}
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
-DBUILD_SHARED_LIBS=${{ matrix.build_shared }}
-DBUILD_TESTING=ON
- name: Build
run: pixi run cmake --build build/ci
- name: Test
run: pixi run ctest --test-dir build/ci --output-on-failure
- name: Test installed package
env:
NETFT_CXX_COMPILER: ${{ matrix.compiler.cxx }}
run: pixi run bash test/install_test.sh ${{ matrix.library }}
cmake-316:
name: CMake 3.16 compatibility
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- uses: prefix-dev/setup-pixi@v0.10.2
with:
cache: true
- name: Verify pinned CMake version
run: pixi run -e cmake-316 cmake --version | grep -E '^cmake version 3\.16\.'
- name: Test shared and static consumers
run: pixi run -e cmake-316 cmake-316-test
gcc-10:
name: GCC 10 compatibility
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
with:
persist-credentials: false
- uses: prefix-dev/setup-pixi@v0.10.2
- name: Build and test with GCC 10
run: bash test/gcc10_compatibility_test.sh
sanitizers:
name: ASan and UBSan
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
- uses: prefix-dev/setup-pixi@v0.10.2
with:
cache: true
- name: Configure
run: >-
pixi run cmake -S . -B build/sanitizers -G Ninja
-DCMAKE_CXX_COMPILER=clang++
-DCMAKE_BUILD_TYPE=Debug
-DBUILD_SHARED_LIBS=ON
-DBUILD_TESTING=ON
-DNETFT_SANITIZERS=ON
- name: Build
run: pixi run cmake --build build/sanitizers
- name: Test
env:
ASAN_OPTIONS: detect_leaks=1:strict_string_checks=1
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
run: pixi run ctest --test-dir build/sanitizers --output-on-failure
arm64:
name: ARM64 Release shared
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v7
- uses: prefix-dev/setup-pixi@v0.10.2
with:
cache: true
- name: Configure
run: >-
pixi run cmake -S . -B build/arm64 -G Ninja
-DCMAKE_BUILD_TYPE=Release
-DBUILD_SHARED_LIBS=ON
-DBUILD_TESTING=ON
- name: Build
run: pixi run cmake --build build/arm64
- name: Test
run: pixi run ctest --test-dir build/arm64 --output-on-failure
- name: Test installed package
run: pixi run shared-test
macos:
name: macOS Release static
runs-on: macos-15
steps:
- uses: actions/checkout@v7
- name: Install dependencies
run: brew install curl googletest ninja
- name: Configure
run: >-
cmake -S . -B build/macos -G Ninja
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_PREFIX_PATH="$(brew --prefix curl);$(brew --prefix googletest)"
-DBUILD_SHARED_LIBS=OFF
-DBUILD_TESTING=ON
- name: Build
run: cmake --build build/macos
- name: Test
run: ctest --test-dir build/macos --output-on-failure
- name: Install
run: cmake --install build/macos --prefix "$RUNNER_TEMP/netft"
- name: Test installed consumer
run: |
cmake -S test/consumer -B build/macos-consumer -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="$RUNNER_TEMP/netft;$(brew --prefix curl)"
cmake --build build/macos-consumer
./build/macos-consumer/netft_consumer
windows:
name: Windows Release static
runs-on: windows-2025
steps:
- uses: actions/checkout@v7
- name: Install dependencies
shell: pwsh
run: >-
vcpkg install
curl:x64-windows
gtest:x64-windows
- name: Configure
shell: pwsh
run: >-
cmake -S . -B build/windows
"-DCMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
-DVCPKG_TARGET_TRIPLET=x64-windows
-DBUILD_SHARED_LIBS=OFF
-DBUILD_TESTING=ON
- name: Build
run: cmake --build build/windows --config Release
- name: Test
run: ctest --test-dir build/windows -C Release --output-on-failure
- name: Install
shell: pwsh
run: cmake --install build/windows --config Release --prefix "$env:RUNNER_TEMP/netft"
- name: Test installed consumer
shell: pwsh
run: |
cmake -S test/consumer -B build/windows-consumer `
"-DCMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" `
-DVCPKG_TARGET_TRIPLET=x64-windows `
"-DCMAKE_PREFIX_PATH=$env:RUNNER_TEMP/netft"
cmake --build build/windows-consumer --config Release
& build/windows-consumer/Release/netft_consumer.exe