Skip to content

Commit 68f5f2a

Browse files
committed
chore: update CI
1 parent 69d82be commit 68f5f2a

5 files changed

Lines changed: 41 additions & 18 deletions

File tree

.github/workflows/ci.yml

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,21 @@ env:
4040
jobs:
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 }}
@@ -61,7 +64,22 @@ jobs:
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
@@ -76,6 +94,7 @@ jobs:
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

.github/workflows/docs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ concurrency:
2323
jobs:
2424
build:
2525
name: docs (mkdocs)
26-
runs-on: ubuntu-latest
26+
runs-on: ubuntu-24.04
2727
timeout-minutes: 15
2828
permissions:
2929
contents: read
@@ -51,7 +51,7 @@ jobs:
5151
name: deploy (github pages)
5252
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
5353
needs: build
54-
runs-on: ubuntu-latest
54+
runs-on: ubuntu-24.04
5555
timeout-minutes: 15
5656
permissions:
5757
pages: write

CMakeLists.txt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.26)
1+
cmake_minimum_required(VERSION 3.30)
22

33
project(coio)
44

@@ -164,7 +164,8 @@ if (COIO_SENDERS_BACKEND STREQUAL "NVIDIA")
164164
CPMFindPackage(
165165
NAME stdexec
166166
GITHUB_REPOSITORY NVIDIA/stdexec
167-
GIT_TAG main
167+
GIT_TAG nvhpc-26.05
168+
GIT_SHALLOW TRUE
168169
EXCLUDE_FROM_ALL YES
169170
SYSTEM YES
170171
OPTIONS
@@ -181,11 +182,11 @@ elseif (COIO_SENDERS_BACKEND STREQUAL "BEMAN")
181182
CPMFindPackage(
182183
NAME beman.execution
183184
GITHUB_REPOSITORY bemanproject/execution
184-
GIT_TAG main
185+
GIT_TAG 8f2b420634eb08ad2c6c224aff2298ea4ab5d1d6
185186
EXCLUDE_FROM_ALL YES
186187
SYSTEM YES
187188
OPTIONS
188-
"BEMAN_EXECUTION_ENABLE_TESTING OFF"
189+
"BEMAN_EXECUTION_BUILD_TESTS OFF"
189190
"BEMAN_EXECUTION_BUILD_EXAMPLES OFF"
190191
"BEMAN_USE_MODULES OFF"
191192
)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ A C++ **asynchronous I/O** library based on [sender/receiver model](https://wg21
3131

3232
### Requirements
3333
- **C++20**/**C++23** compatible compiler
34-
- CMake 3.26+
34+
- CMake 3.30+
3535

3636
### Build Options
3737
- `COIO_BUILD_EXAMPLES` (`ON`/`OFF`, default `OFF`) - Build example programs

docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This page walks through building coio, integrating it into a CMake project, and
55
## Requirements
66

77
- A **C++20**/**C++23** compatible compiler (recent GCC, Clang, or MSVC).
8-
- **CMake 3.26+**.
8+
- **CMake 3.30+**.
99
- Platform backends:
1010
- Linux: `epoll_context` works on any modern kernel; `uring_context` additionally needs [liburing](https://github.com/axboe/liburing) and a **5.19+ kernel at runtime** (probed at context construction).
1111
- Windows: `iocp_context` uses I/O Completion Ports.

0 commit comments

Comments
 (0)