Skip to content

add test_scheduler and marble and notification #2214

add test_scheduler and marble and notification

add test_scheduler and marble and notification #2214

Workflow file for this run

name: CI (CPU)
on:
push:
branches:
- main
- "pull-request/[0-9]+"
concurrency:
group: ${{ github.workflow }}-on-${{ github.event_name }}-from-${{ github.ref_name }}
cancel-in-progress: true
jobs:
build-cpu:
runs-on: ubuntu-latest
name: ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
include:
- { name: "CPU (clang 16, Debug)", build: "Debug", tag: llvm16-cuda12.9, cxxflags: "-stdlib=libc++" }
- { name: "CPU (clang 16, Release)", build: "Release", tag: llvm16-cuda12.9, cxxflags: "-stdlib=libc++" }
- { name: "CPU (gcc 11, Debug)", build: "Debug", tag: gcc11-cuda12.9, cxxflags: "", }
- { name: "CPU (gcc 11, Release)", build: "Release", tag: gcc11-cuda12.9, cxxflags: "", }
- { name: "CPU (gcc 11, Release, TSAN)", build: "Release", tag: gcc11-cuda12.9, cxxflags: "-fsanitize=thread" }
- { name: "CPU (gcc 11, Release, ASAN)", build: "Release", tag: gcc11-cuda12.9, cxxflags: "-fsanitize=address" }
container:
options: -u root
image: rapidsai/devcontainers:25.10-cpp-${{ matrix.tag }}
env:
SCCACHE_BUCKET: "rapids-sccache-devs"
SCCACHE_REGION: "us-east-2"
SCCACHE_S3_KEY_PREFIX: "nvidia-stdexec-dev"
SCCACHE_SERVER_PORT: "4225"
SCCACHE_SERVER_LOG: "sccache=debug"
permissions:
id-token: write # This is required for configure-aws-credentials
contents: read # This is required for actions/checkout
defaults:
run:
shell: su coder {0}
working-directory: /home/coder
steps:
- name: Checkout stdexec
uses: actions/checkout@v4
with:
path: stdexec
persist-credentials: false
- name: Setup environment
run: |
echo "ARTIFACT_PREFIX=${{runner.os}}-${{matrix.tag}}-amd64" >> "${GITHUB_ENV}"
echo "ARTIFACT_SUFFIX=${{github.run_id}}-${{github.run_attempt}}-$RANDOM" >> "${GITHUB_ENV}"
- id: sccache-preprocessor-cache
name: Setup sccache preprocessor cache
uses: actions/cache@v4
with:
path: /home/coder/.cache/sccache/preprocessor
restore-keys: sccache-preprocessor-cache-${{env.ARTIFACT_PREFIX}}
key: sccache-preprocessor-cache-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}}
- id: sccache-dist-toolchains-cache
name: Setup sccache-dist client toolchains cache
uses: actions/cache@v4
with:
path: /home/coder/.cache/sccache-dist-client
restore-keys: sccache-toolchains-cache-${{env.ARTIFACT_PREFIX}}
key: sccache-toolchains-cache-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}}
- if: github.repository_owner == 'NVIDIA'
name: Get AWS credentials for sccache bucket
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: us-east-2
role-duration-seconds: 28800 # 8 hours
role-to-assume: arn:aws:iam::279114543810:role/gha-oidc-NVIDIA
- name: Build and test CPU schedulers
env:
NVCC_APPEND_FLAGS: "-t=100"
SCCACHE_DIST_URL: "https://amd64.linux.sccache.rapids.nvidia.com"
SCCACHE_DIST_CONNECT_TIMEOUT: "30"
SCCACHE_DIST_FALLBACK_TO_LOCAL_COMPILE: "true"
SCCACHE_DIST_KEEPALIVE_ENABLED: "true"
SCCACHE_DIST_KEEPALIVE_INTERVAL: "20"
SCCACHE_DIST_KEEPALIVE_TIMEOUT: "600"
SCCACHE_DIST_REWRITE_INCLUDES_ONLY: ${{ contains(matrix.tag, 'llvm') && 'true' || 'false' }}
SCCACHE_DIST_REQUEST_TIMEOUT: "7140"
SCCACHE_IDLE_TIMEOUT: "7200"
run: |
set -ex;
devcontainer-utils-install-sccache --repo rapidsai/sccache --version rapids;
devcontainer-utils-init-sccache-dist \
--enable-sccache-dist - <<< " \
--auth-type 'token' \
--auth-token '${{ secrets.STDEXEC_BUILD_CLUSTER_SECRET }}' \
";
# Copy source folder into ~/stdexec
cp -r "${GITHUB_WORKSPACE}"/stdexec ~/;
chown -R coder:coder ~/stdexec;
cd ~/stdexec;
# Configure
cmake -S . -B build -GNinja \
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
-DCMAKE_CXX_FLAGS="${{ matrix.cxxflags }}" \
-DSTDEXEC_ENABLE_TBB:BOOL=${{ !contains(matrix.cxxflags, '-fsanitize') }} \
-DSTDEXEC_ENABLE_ASIO:BOOL=TRUE \
-DSTDEXEC_ASIO_IMPLEMENTATION:STRING=boost \
;
# Compile
cmake --build build -v -j 512;
# Print sccache stats
sccache -s;
# Tests
ctest --test-dir build --verbose --output-on-failure --timeout 300;
- if: ${{ !cancelled() }}
name: Upload sccache logs
uses: actions/upload-artifact@v4
with:
name: sccache-client-logs-${{env.ARTIFACT_PREFIX}}-${{env.ARTIFACT_SUFFIX}}
path: /tmp/sccache*.log
compression-level: 9
ci-cpu:
runs-on: ubuntu-latest
name: CI (CPU)
needs:
- build-cpu
steps:
- run: echo "CI (CPU) success"
build-cpu-windows:
runs-on: windows-2022
name: ${{ matrix.name }}
strategy:
fail-fast: false
matrix:
include:
- { compiler: "cl", build: "Debug", name: "CPU (Windows) (msvc, Debug)" }
- { compiler: "cl", build: "Release", name: "CPU (Windows) (msvc, Release)" }
#- { compiler: "clang++", build: "Debug", name: "CPU (Windows) (clang, Debug)" }
#- { compiler: "clang++", build: "Release", name: "CPU (Windows) (clang, Release)" }
#- { compiler: "clang-cl", build: "Debug", name: "CPU (Windows) (clang-cl, Debug)" }
#- { compiler: "clang-cl", build: "Release", name: "CPU (Windows) (clang-cl, Release)" }
steps:
- name: Checkout stdexec (Windows)
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build and test CPU schedulers (Windows)
shell: pwsh
run: |
docker pull rapidsai/devcontainers:25.10-cuda12.9-cl14.43
docker run --isolation=process -v "$(pwd):C:/stdexec" rapidsai/devcontainers:25.10-cuda12.9-cl14.43 powershell C:/stdexec/.github/workflows/test-windows.ps1 -Compiler '${{ matrix.compiler }}' -Config '${{ matrix.build }}'
ci-cpu-windows:
runs-on: windows-latest
name: CI (CPU) (Windows)
needs:
- build-cpu-windows
steps:
- run: echo "CI (CPU) (Windows) success"
build-cpu-macos:
runs-on: macos-15-large
name: macos-${{ matrix.name }}
strategy:
fail-fast: false
matrix:
include:
- { compiler: "clang++", build: "Debug", name: "CPU (MacOS) (clang, Debug)" }
- { compiler: "clang++", build: "Release", name: "CPU (MacOS) (clang, Release)" }
steps:
- name: Checkout stdexec (MacOS)
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Install dependencies
run: |
brew update
brew install ninja
shell: bash
- name: Build and test CPU schedulers (MacOS)
shell: bash
run: |
mkdir build
cmake -S. -Bbuild -GNinja \
-DCMAKE_BUILD_TYPE=${{ matrix.build }} \
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }} \
-DSTDEXEC_ENABLE_ASIO:BOOL=TRUE \
-DSTDEXEC_ASIO_IMPLEMENTATION:STRING=boost \
-DCMAKE_CXX_STANDARD=20
cmake --build build/ -v
cd build
ctest --output-on-failure
ci-cpu-macos:
runs-on: macos-latest-large
name: CI (CPU) (MacOS)
needs:
- build-cpu-macos
steps:
- run: echo "CI (CPU) (MacOS) success"