forked from NVIDIA/stdexec
-
Notifications
You must be signed in to change notification settings - Fork 0
116 lines (104 loc) · 4.15 KB
/
ci.cpu.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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 12, Debug, ubuntu 20.04)", build: "Debug", tag: llvm12-cuda12.3-ubuntu20.04, cxxflags: "-stdlib=libc++" }
- { name: "CPU (clang 12, Release, ubuntu 20.04)", build: "Release", tag: llvm12-cuda12.3-ubuntu20.04, cxxflags: "-stdlib=libc++" }
- { name: "CPU (gcc 11, Debug, ubuntu 22.04)", build: "Debug", tag: gcc11-cuda12.3-ubuntu22.04, cxxflags: "", }
- { name: "CPU (gcc 11, Release, ubuntu 22.04)", build: "Release", tag: gcc11-cuda12.3-ubuntu22.04, cxxflags: "", }
- { name: "CPU (gcc 11, Release, ubuntu 22.04, TSAN)", build: "Release", tag: gcc11-cuda12.3-ubuntu22.04, cxxflags: "-fsanitize=thread" }
- { name: "CPU (gcc 11, Release, ubuntu 22.04, ASAN)", build: "Release", tag: gcc11-cuda12.3-ubuntu22.04, cxxflags: "-fsanitize=address" }
container:
options: -u root
image: rapidsai/devcontainers:24.02-cpp-${{matrix.tag}}
env:
SCCACHE_REGION: "us-east-2"
SCCACHE_BUCKET: "rapids-sccache-devs"
SCCACHE_S3_KEY_PREFIX: "nvidia-stdexec-dev"
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@v3
with:
path: stdexec
persist-credentials: false
- 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
run: |
set -ex;
# 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') }} \
;
# Compile
cmake --build build -v;
# Print sccache stats
sccache -s;
# Tests
ctest --test-dir build --verbose --output-on-failure --timeout 60;
ci-cpu:
runs-on: ubuntu-latest
name: CI (CPU)
needs:
- build-cpu
steps:
- run: echo "CI (CPU) success"
build-cpu-windows:
runs-on: windows-latest
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@v3
with:
persist-credentials: false
- name: Build and test CPU schedulers (Windows)
shell: pwsh
run: .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"