55
66name : " Clang Sanitizer"
77
8- on :
8+ on :
99 push :
10- paths-ignore :
10+ paths-ignore :
1111 - ' **.md'
1212 - ' doc/**'
1313 pull_request :
14- paths-ignore :
14+ paths-ignore :
1515 - ' **.md'
1616 - ' doc/**'
1717jobs :
1818 build :
1919 name : " ${{matrix.config.name}} with ${{matrix.config.description}} sanitizer with std=${{matrix.config.cxx}} and variant=${{matrix.config.variant}}"
20- runs-on : ubuntu-20.04
20+ runs-on : ubuntu-latest
21+ container :
22+ image : ${{matrix.container}}
23+ volumes :
24+ - /node20217:/node20217:rw,rshared
25+ - ${{ startsWith(matrix.container, 'ubuntu:1') && '/node20217:/__e/node20:ro,rshared' || ' ' }}
2126 strategy :
2227 fail-fast : false
2328 # If any compiler fails to compile, continue CI for next compiler in matrix instead of failing early
2429 matrix :
2530 config :
26- - { name: clang, description: address and leak, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off , cxxflags: -fsanitize=address -fno-omit-frame-pointer, ldflags: -fsanitize=address }
27- - { name: clang, description: undefined behavior, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off , cxxflags: -fsanitize=undefined, ldflags: -fsanitize=undefined }
28- - { name: clang, description: thread, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off , cxxflags: -fsanitize=thread, ldflags: -fsanitize=thread }
29- - { name: gcc, description: address and leak, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp -fsanitize=address -fno-omit-frame-pointer, ldflags: -fsanitize=address -fopenmp}
30- # - { name: gcc, description: undefined behavior, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp -fsanitize=undefined, ldflags: -fsanitize=undefined -fopenmp}
31- # - { name: gcc, description: thread, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp -fsanitize=thread, ldflags: -fsanitize=thread -fopenmp}
32-
31+ - { name: clang, description: address and leak, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off , cxxflags: -fsanitize=address -fno-omit-frame-pointer, ldflags: -fsanitize=address , container: ubuntu:20.04 }
32+ - { name: clang, description: undefined behavior, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off , cxxflags: -fsanitize=undefined, ldflags: -fsanitize=undefined, container: ubuntu:20.04 }
33+ - { name: clang, description: thread, cc: clang-11, cxx: clang++-11, cxxstd: 20, variant: debug, opt: off , cxxflags: -fsanitize=thread, ldflags: -fsanitize=thread , container: ubuntu:20.04 }
34+ - { name: gcc, description: address and leak, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp -fsanitize=address -fno-omit-frame-pointer, ldflags: -fsanitize=address -fopenmp, container: ubuntu:20.04 }
35+ # - { name: gcc, description: undefined behavior, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp -fsanitize=undefined, ldflags: -fsanitize=undefined -fopenmp, container: ubuntu:20.04 }
36+ # - { name: gcc, description: thread, cc: gcc-10, cxx: g++-10, cxxstd: 20, variant: release, opt: speed, cxxflags: -fopenmp -fsanitize=thread, ldflags: -fsanitize=thread -fopenmp, container: ubuntu:20.04 }
37+
3338 steps :
34- - uses : actions/checkout@v2
35-
39+ - name : Setup container environment
40+ if : matrix.container
41+ run : |
42+ apt-get update
43+ apt-get -y install sudo python3 git g++ curl xz-utils
44+
45+ - name : Install nodejs20glibc2.17
46+ if : ${{ startsWith( matrix.container, 'ubuntu:1' ) }}
47+ run : |
48+ curl -LO https://archives.boost.io/misc/node/node-v20.9.0-linux-x64-glibc-217.tar.xz
49+ tar -xf node-v20.9.0-linux-x64-glibc-217.tar.xz --strip-components 1 -C /node20217
50+ ldd /__e/node20/bin/node
51+
3652 - name : Install Clang 11
3753 run : sudo apt-get update && sudo apt-get install -y clang-11 clang-tools-11
3854
3955 - name : Install GCC 10
4056 run : sudo apt-get update && sudo apt-get install -y g++-10 libomp-dev
41-
57+
58+ - uses : actions/checkout@v4
59+
4260 - name : Git Clone Boost.uBlas
4361 run : |
4462 cd ${GITHUB_WORKSPACE}
4563 cd ..
46-
64+
4765 git clone -b master --depth 1 https://github.com/boostorg/boost.git boost-root
4866 cd boost-root
4967 echo "BOOST_ROOT=${PWD}" >> ${GITHUB_ENV}
5068 echo $BOOST_ROOT
51-
69+
5270 git submodule update --init --depth=1 --jobs 8 tools/build
5371 git submodule update --init --depth=1 --jobs 8 libs/config
5472 git submodule update --init --depth=1 --jobs 8 tools/boostdep
55-
73+
5674 mkdir -p libs/numeric/
5775 cp -rp ${GITHUB_WORKSPACE}/. libs/numeric/ublas
58- python tools/boostdep/depinst/depinst.py -g " --depth=1" -I benchmarks numeric/ublas
76+ python3 tools/boostdep/depinst/depinst.py -g " --depth=1" -I benchmarks numeric/ublas
5977
6078 - name : Bootstrap Boost and Compile Boost
6179 run : |
@@ -65,19 +83,19 @@ jobs:
6583 echo "using ${{ matrix.config.name }} : : ${{ matrix.config.cxx }} ;" >> ~/user-config.jam;
6684 export ASAN_OPTIONS=symbolize=1
6785 export ASAN_OPTIONS=detect_leaks=1
68-
86+
6987 - name : Run Tensor Examples with "${{matrix.config.description}}" sanitizer
70- run : |
71- cd $BOOST_ROOT/libs/numeric/ublas
88+ run : |
89+ cd $BOOST_ROOT/libs/numeric/ublas
7290 ASAN_OPTIONS=detect_leaks=1
7391 ASAN_OPTIONS=symbolize=1
7492 $BOOST_ROOT/b2 -j8 examples/tensor toolset=${{matrix.config.name}} cxxstd=${{matrix.config.cxxstd}} variant=${{matrix.config.variant}} optimization=${{matrix.config.opt}} cxxflags="${{matrix.config.cxxflags}}" linkflags="${{matrix.config.ldflags}}"
75-
76- - name : Run Tensor Tests with "${{matrix.config.description}}" sanitizer
93+
94+ - name : Run Tensor Tests with "${{matrix.config.description}}" sanitizer
7795 run : |
7896 cd $BOOST_ROOT/libs/numeric/ublas
7997 ASAN_OPTIONS=detect_leaks=1
8098 ASAN_OPTIONS=symbolize=1
8199 $BOOST_ROOT/b2 -j8 test/tensor toolset=${{matrix.config.name}} cxxstd=${{matrix.config.cxxstd}} variant=${{matrix.config.variant}} optimization=${{matrix.config.opt}} cxxflags="${{matrix.config.cxxflags}}" linkflags="${{matrix.config.ldflags}}"
82-
83-
100+
101+
0 commit comments