4040jobs :
4141 linux :
4242 name : linux (${{ matrix.name }})
43- runs-on : ubuntu-latest
43+ runs-on : ubuntu-24.04
4444 timeout-minutes : 60
4545 strategy :
4646 fail-fast : false
4747 matrix :
4848 include :
49- - { name: GCC | Debug (ASan), cc: gcc-14, cxx: g++-14, build_type: Debug, asan: "ON", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
50- - { name: GCC | Debug (TSan), cc: gcc-14, cxx: g++-14, build_type: Debug, asan: "OFF", ubsan: "OFF", tsan: "ON", examples: "OFF" }
51- - { name: GCC | Release, cc: gcc-14, cxx: g++-14, build_type: Release, asan: "OFF", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
52- - { name: Clang | Debug (ASan, UBSan), cc: clang-18, cxx: clang++-18, build_type: Debug, asan: "ON", ubsan: "ON", tsan: "OFF", examples: "OFF" }
53- - { name: Clang | Debug (TSan), cc: clang-18, cxx: clang++-18, build_type: Debug, asan: "OFF", ubsan: "OFF", tsan: "ON", examples: "OFF" }
54- - { name: Clang | Release, cc: clang-18, cxx: clang++-18, build_type: Release, asan: "OFF", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
49+ - { name: stdexec | GCC | Debug | ASan, cc: gcc-14, cxx: g++-14, backend: NVIDIA, build_type: Debug, asan: "ON", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
50+ - { name: stdexec | GCC | Debug | TSan, cc: gcc-14, cxx: g++-14, backend: NVIDIA, build_type: Debug, asan: "OFF", ubsan: "OFF", tsan: "ON", examples: "OFF" }
51+ - { name: stdexec | GCC | Release, cc: gcc-14, cxx: g++-14, backend: NVIDIA, build_type: Release, asan: "OFF", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
52+ - { name: stdexec | Clang | Debug | ASan + UBSan, cc: clang-19, cxx: clang++-19, backend: NVIDIA, build_type: Debug, asan: "ON", ubsan: "ON", tsan: "OFF", examples: "OFF" }
53+ - { name: stdexec | Clang | Debug | TSan, cc: clang-19, cxx: clang++-19, backend: NVIDIA, build_type: Debug, asan: "OFF", ubsan: "OFF", tsan: "ON", examples: "OFF" }
54+ - { name: stdexec | Clang | Release, cc: clang-19, cxx: clang++-19, backend: NVIDIA, build_type: Release, asan: "OFF", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
55+ - { name: beman.execution | Clang | Debug | ASan + UBSan, cc: clang-19, cxx: clang++-19, backend: BEMAN, build_type: Debug, asan: "ON", ubsan: "ON", tsan: "OFF", examples: "OFF" }
56+ - { name: beman.execution | Clang | Debug | TSan, cc: clang-19, cxx: clang++-19, backend: BEMAN, build_type: Debug, asan: "OFF", ubsan: "OFF", tsan: "ON", examples: "OFF" }
57+ - { name: beman.execution | Clang | Release, cc: clang-19, cxx: clang++-19, backend: BEMAN, build_type: Release, asan: "OFF", ubsan: "OFF", tsan: "OFF", examples: "OFF" }
5558 env :
5659 CC : ${{ matrix.cc }}
5760 CXX : ${{ matrix.cxx }}
6164 - name : Install dependencies
6265 run : |
6366 sudo apt-get update
64- sudo apt-get install -y ninja-build liburing-dev
67+ sudo apt-get install -y ca-certificates curl gpg ninja-build liburing-dev
68+
69+ - name : Cache Clang APT packages
70+ if : startsWith(matrix.cc, 'clang-')
71+ uses : actions/cache@v4
72+ with :
73+ path : /var/cache/apt/archives/*.deb
74+ key : llvm-apt-${{ runner.arch }}-noble-clang-19-v1
75+
76+ - name : Install Clang 19
77+ if : startsWith(matrix.cc, 'clang-')
78+ run : |
79+ curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/llvm-snapshot.gpg
80+ echo "deb [signed-by=/usr/share/keyrings/llvm-snapshot.gpg] https://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" | sudo tee /etc/apt/sources.list.d/llvm.list
81+ sudo apt-get update
82+ sudo apt-get -o APT::Keep-Downloaded-Packages=true install -y clang-19
6583
6684 - name : Cache CPM packages
6785 uses : actions/cache@v4
7694 -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
7795 -DCOIO_BUILD_TESTS=ON
7896 -DCOIO_BUILD_EXAMPLES=${{ matrix.examples }}
97+ -DCOIO_SENDERS_BACKEND=${{ matrix.backend }}
7998 -DCOIO_BUILD_WITH_ASAN=${{ matrix.asan }}
8099 -DCOIO_BUILD_WITH_UBSAN=${{ matrix.ubsan }}
81100 -DCOIO_BUILD_WITH_TSAN=${{ matrix.tsan }}
@@ -94,8 +113,10 @@ jobs:
94113 fail-fast : false
95114 matrix :
96115 include :
97- - { name: MSVC | Debug (ASan), build_type: Debug, asan: "ON", examples: "OFF" }
98- - { name: MSVC | Release, build_type: Release, asan: "OFF", examples: "OFF" }
116+ - { name: stdexec | MSVC | Debug | ASan, build_type: Debug, backend: NVIDIA, asan: "ON", examples: "OFF" }
117+ - { name: stdexec | MSVC | Release, build_type: Release, backend: NVIDIA, asan: "OFF", examples: "OFF" }
118+ - { name: beman.execution | MSVC | Debug | ASan, build_type: Debug, backend: BEMAN, asan: "ON", examples: "OFF" }
119+ - { name: beman.execution | MSVC | Release, build_type: Release, backend: BEMAN, asan: "OFF", examples: "OFF" }
99120 steps :
100121 - uses : actions/checkout@v4
101122
@@ -111,6 +132,7 @@ jobs:
111132 cmake -B build
112133 -DCOIO_BUILD_TESTS=ON
113134 -DCOIO_BUILD_EXAMPLES=${{ matrix.examples }}
135+ -DCOIO_SENDERS_BACKEND=${{ matrix.backend }}
114136 -DCOIO_BUILD_WITH_ASAN=${{ matrix.asan }}
115137
116138 - name : Build
0 commit comments