-
Notifications
You must be signed in to change notification settings - Fork 99
100 lines (87 loc) · 3.76 KB
/
linux.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
name: github-Linux
on:
pull_request:
paths-ignore:
- '**/*.rst'
- '**/*.md'
- '**/requirements.txt'
- '**/*.py'
- 'docs/**'
types: [ opened, reopened, synchronize ]
permissions:
contents: none
# Cancels any in progress 'workflow' associated with this PR
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
kokkos_version: 4.5.00
jobs:
check-pr-labels:
runs-on: [ubuntu-latest]
steps:
- uses: docker://agilepathway/pull-request-label-checker@sha256:ee57b0e1aedab22063ce6467a6e6358e254a9204693ca20d8a16b2d891db8d5f # v1.6.32
with:
none_of: 'AT: WIP'
repo_token: ${{ secrets.GITHUB_TOKEN }}
sanitizers:
needs: check-pr-labels
# TODO: allow re-run via retest label if: ${{ github.event.label.name == 'AT: RETEST' }}
name: ubuntu-asan-ubsan-ci
runs-on: [ubuntu-latest]
strategy:
matrix:
include:
- backend: "SERIAL"
cmake_build_type: "RelWithDebInfo"
debug_bounds_check: "OFF"
steps:
- name: checkout_kokkos_kernels
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
path: kokkos-kernels
- name: checkout_kokkos
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
repository: kokkos/kokkos
ref: ${{ env.kokkos_version }}
path: kokkos
- name: configure_kokkos
run: |
mkdir -p kokkos/{build,install}
cmake -S kokkos -B kokkos/build \
-DKokkos_ENABLE_${{ matrix.backend }}=ON \
-DCMAKE_CXX_STANDARD=17 \
-DKokkos_ENABLE_COMPILER_WARNINGS=ON \
-DKokkos_ENABLE_DEBUG_BOUNDS_CHECK:BOOL=${{ matrix.debug_bounds_check }} \
-DKokkos_ENABLE_TESTS=OFF \
-DKokkos_ENABLE_DEPRECATED_CODE_4=OFF \
-DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \
-DCMAKE_CXX_FLAGS="-fsanitize=address -fsanitize=undefined -fno-sanitize=signed-integer-overflow -fno-sanitize=vptr -fno-sanitize-recover=all" \
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address -fsanitize=undefined -fno-sanitize=signed-integer-overflow -fno-sanitize=vptr -fno-sanitize-recover=all" \
-DCMAKE_INSTALL_PREFIX=$(realpath kokkos/install)
- name: build_and_install_kokkos
run: cmake --build kokkos/build --target install --parallel $(nproc)
- name: configure_kokkos_kernels
run: |
mkdir -p kokkos-kernels/build
cmake -S kokkos-kernels -B kokkos-kernels/build \
-DKokkos_ROOT=$(realpath kokkos/install) \
-DCMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }} \
-DCMAKE_INSTALL_PREFIX=$PWD/../install \
-DKokkosKernels_ENABLE_TESTS=ON \
-DKokkosKernels_ENABLE_EXAMPLES:BOOL=ON \
-DKokkosKernels_INST_COMPLEX_DOUBLE=OFF \
-DKokkosKernels_INST_DOUBLE=ON \
-DKokkosKernels_INST_COMPLEX_FLOAT=OFF \
-DKokkosKernels_INST_FLOAT=OFF \
-DKokkosKernels_INST_LAYOUTLEFT:BOOL=ON \
-DKokkosKernels_INST_LAYOUTRIGHT:BOOL=OFF \
-DKokkosKernels_INST_OFFSET_INT=ON \
-DKokkosKernels_INST_OFFSET_SIZE_T=OFF \
-DCMAKE_CXX_FLAGS="-fsanitize=address -fsanitize=undefined -fno-sanitize=signed-integer-overflow -fno-sanitize=vptr -fno-sanitize-recover=all" \
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address -fsanitize=undefined -fno-sanitize=signed-integer-overflow -fno-sanitize=vptr -fno-sanitize-recover=all"
- name: build_kokkos_kernels
run: cmake --build kokkos-kernels/build --parallel $(nproc)
- name: test
run: UBSAN_OPTIONS=print_stacktrace=1 ctest --test-dir kokkos-kernels/build -j$(nproc) --output-on-failure --timeout 7200