Skip to content

Commit df7b6c6

Browse files
authored
Fixes skupperproject#1444: move all sanitizer tests to the ubuntu platform (skupperproject#1445)
1 parent f46492f commit df7b6c6

File tree

1 file changed

+107
-50
lines changed

1 file changed

+107
-50
lines changed

.github/workflows/build.yaml

+107-50
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,28 @@ env:
4141
protonBranch: "${{ github.event.inputs.protonBranch || 'main' }}"
4242

4343
jobs:
44+
45+
######################
46+
### Ubuntu Compile ###
47+
######################
48+
4449
compile:
45-
name: "Compile (${{matrix.os}}, ${{matrix.runtimeCheck}}, proton ${{matrix.protonGitRef}})"
50+
name: "Compile (${{matrix.os}}, ${{matrix.buildType}}, ${{matrix.runtimeCheck}}, proton ${{matrix.protonGitRef}})"
4651
runs-on: ${{ matrix.os }}
4752
strategy:
4853
fail-fast: false
4954
matrix:
5055
os: [ubuntu-22.04]
51-
buildType: [Debug]
52-
runtimeCheck: [asan]
56+
buildType: [Debug, RelWithDebInfo]
57+
runtimeCheck: [asan, tsan]
5358
protonGitRef:
5459
- ${{ github.event.inputs.protonBranch || 'main' }}
5560
- 0.39.0
61+
exclude:
62+
- buildType: Debug
63+
runtimeCheck: tsan
64+
- buildType: RelWithDebInfo
65+
runtimeCheck: asan
5666
env:
5767
CC: 'gcc-12'
5868
CXX: 'g++-12'
@@ -141,7 +151,7 @@ jobs:
141151

142152
- name: Install Linux build dependencies
143153
run: |
144-
sudo apt update; sudo apt install -y libdw-dev swig libpython3-dev libsasl2-dev libjsoncpp-dev libwebsockets-dev libnghttp2-dev ccache ninja-build pixz libbenchmark-dev nginx
154+
sudo apt update; sudo apt install -y libdw-dev swig libpython3-dev libsasl2-dev libjsoncpp-dev libwebsockets-dev libnghttp2-dev ccache ninja-build pixz libbenchmark-dev nginx libunwind-dev
145155
146156
- name: Zero ccache stats
147157
run: ccache -z
@@ -197,21 +207,31 @@ jobs:
197207
name: skupper_router_wrk_${{env.JOB_IDENTIFIER}}
198208
path: /tmp/archive.tar.xz
199209

210+
211+
###################
212+
### Ubuntu Test ###
213+
###################
214+
200215
test:
201-
name: 'Test (${{matrix.os}}, ${{matrix.runtimeCheck}}, proton ${{matrix.protonGitRef}}, shard ${{matrix.shard}} of ${{matrix.shards}})'
216+
name: 'Test (${{matrix.os}}, ${{matrix.buildType}}, ${{matrix.runtimeCheck}}, proton ${{matrix.protonGitRef}}, shard ${{matrix.shard}} of ${{matrix.shards}})'
202217
runs-on: ${{ matrix.os }}
203218
needs: [compile]
204219
strategy:
205220
fail-fast: false
206221
matrix:
207222
os: [ubuntu-22.04]
208-
buildType: [Debug]
209-
runtimeCheck: [asan]
223+
buildType: [Debug, RelWithDebInfo]
224+
runtimeCheck: [asan, tsan]
210225
protonGitRef:
211226
- ${{ github.event.inputs.protonBranch || 'main' }}
212227
- 0.39.0
213228
shard: [1, 2]
214229
shards: [2]
230+
exclude:
231+
- buildType: Debug
232+
runtimeCheck: tsan
233+
- buildType: RelWithDebInfo
234+
runtimeCheck: asan
215235
env:
216236
CC: 'gcc-12'
217237
CXX: 'g++-12'
@@ -269,7 +289,7 @@ jobs:
269289
run: |
270290
sudo sysctl -w kernel.core_pattern="coredump.%e.%p"
271291
ulimit -c unlimited
272-
292+
sudo sysctl -w vm.mmap_rnd_bits=28
273293
ctest --timeout 1200 -V --output-junit=Testing/Test.xml --no-compress-output -I ${{matrix.shard}},,${{matrix.shards}} -j12 ${{env.RouterCTestExtraArgs}}
274294
275295
- name: Report coredump stacktraces (if any tests failed)
@@ -305,6 +325,11 @@ jobs:
305325
path: |
306326
**/coredump*
307327
328+
329+
####################
330+
### Raspberry PI ###
331+
####################
332+
308333
compile_and_test_pi5:
309334
name: "Compile and Test on Pi 5 (aarch64 on Pi 5 proton main)"
310335
runs-on: self-hosted-arm64
@@ -450,8 +475,13 @@ jobs:
450475
path: |
451476
**/coredump*
452477
478+
479+
####################
480+
### Fedora Tests ###
481+
####################
482+
453483
compile_and_test:
454-
name: "Compile and Test (${{matrix.container}}:${{matrix.containerTag}}, ${{matrix.runtimeCheck}}, ${{matrix.cc}}, proton ${{matrix.protonGitRef}}, shard ${{matrix.shard}} of ${{matrix.shards}})"
484+
name: "Compile and Test (${{matrix.container}}:${{matrix.containerTag}}, ${{matrix.buildType}}, proton ${{matrix.protonGitRef}}, shard ${{matrix.shard}} of ${{matrix.shards}})"
455485
runs-on: ${{ matrix.os }}
456486
strategy:
457487
fail-fast: false
@@ -462,15 +492,15 @@ jobs:
462492
cc: [gcc]
463493
cxx: [g++]
464494
python: [python3.11]
465-
buildType: [RelWithDebInfo]
466-
runtimeCheck: [asan, tsan]
495+
buildType: [RelWithDebInfo, Debug]
496+
runtimeCheck: [OFF]
467497
protonGitRef:
468498
- ${{ github.event.inputs.protonBranch || 'main' }}
469499
- 0.39.0
470500
shard: [ 1, 2 ]
471501
shards: [ 2 ]
472502
include:
473-
# CentOS 9
503+
# CentOS 9: Coverage Proton-main 1 of 2
474504
- os: ubuntu-22.04
475505
container: 'centos'
476506
containerTag: stream9
@@ -483,6 +513,7 @@ jobs:
483513
protonGitRef: ${{ github.event.inputs.protonBranch || 'main' }}
484514
shard: 1
485515
shards: 2
516+
# CentOS 9: Coverage Proton-main 2 of 2
486517
- os: ubuntu-22.04
487518
container: 'centos'
488519
containerTag: stream9
@@ -495,7 +526,7 @@ jobs:
495526
protonGitRef: ${{ github.event.inputs.protonBranch || 'main' }}
496527
shard: 2
497528
shards: 2
498-
# CentOS 8
529+
# CentOS 8: Release Proton-main 1 of 2
499530
- os: ubuntu-22.04
500531
container: 'centos'
501532
containerTag: stream8
@@ -507,6 +538,7 @@ jobs:
507538
protonGitRef: ${{ github.event.inputs.protonBranch || 'main' }}
508539
shard: 1
509540
shards: 2
541+
# CentOS 8: Release Proton-main 2 of 2
510542
- os: ubuntu-22.04
511543
container: 'centos'
512544
containerTag: stream8
@@ -518,43 +550,43 @@ jobs:
518550
protonGitRef: ${{ github.event.inputs.protonBranch || 'main' }}
519551
shard: 2
520552
shards: 2
521-
- os: ubuntu-22.04
522-
container: 'centos'
523-
containerTag: stream8
524-
cc: gcc
525-
cxx: g++
526-
python: python3
527-
buildType: RelWithDebInfo
528-
runtimeCheck: OFF
529-
protonGitRef: 0.39.0
530-
shard: 1
531-
shards: 2
532-
- os: ubuntu-22.04
533-
container: 'centos'
534-
containerTag: stream8
535-
cc: gcc
536-
cxx: g++
537-
python: python3
538-
buildType: RelWithDebInfo
539-
runtimeCheck: OFF
540-
protonGitRef: 0.39.0
541-
shard: 2
542-
shards: 2
543-
# unittest coverage
544-
- os: ubuntu-22.04
545-
container: 'fedora'
546-
containerTag: 39
547-
cc: gcc
548-
cxx: g++
549-
python: python3.12
550-
buildType: Coverage
551-
covType: unit
552-
runtimeCheck: OFF
553-
protonGitRef: 0.39.0
554-
routerCTestExtraArgs: "-R 'unittests|unit_tests|threaded_timer_test|adaptor_buffer_test|router_engine_test|management_test|router_policy_test|test_command'"
555-
shard: 1
556-
shards: 1
557-
# clang
553+
# - os: ubuntu-22.04
554+
# container: 'centos'
555+
# containerTag: stream8
556+
# cc: gcc
557+
# cxx: g++
558+
# python: python3
559+
# buildType: RelWithDebInfo
560+
# runtimeCheck: OFF
561+
# protonGitRef: 0.39.0
562+
# shard: 1
563+
# shards: 2
564+
# - os: ubuntu-22.04
565+
# container: 'centos'
566+
# containerTag: stream8
567+
# cc: gcc
568+
# cxx: g++
569+
# python: python3
570+
# buildType: RelWithDebInfo
571+
# runtimeCheck: OFF
572+
# protonGitRef: 0.39.0
573+
# shard: 2
574+
# shards: 2
575+
# # unittest coverage
576+
# - os: ubuntu-22.04
577+
# container: 'fedora'
578+
# containerTag: 39
579+
# cc: gcc
580+
# cxx: g++
581+
# python: python3.12
582+
# buildType: Coverage
583+
# covType: unit
584+
# runtimeCheck: OFF
585+
# protonGitRef: 0.39.0
586+
# routerCTestExtraArgs: "-R 'unittests|unit_tests|threaded_timer_test|adaptor_buffer_test|router_engine_test|management_test|router_policy_test|test_command'"
587+
# shard: 1
588+
# shards: 1
589+
# # clang
558590
#- os: ubuntu-22.04
559591
# container: 'fedora'
560592
# containerTag: 39
@@ -867,6 +899,11 @@ jobs:
867899
path: |
868900
**/coredump*
869901
902+
903+
######################
904+
### Python Checker ###
905+
######################
906+
870907
python:
871908
name: 'Python Checker (${{ matrix.os }})'
872909
runs-on: '${{ matrix.os }}'
@@ -923,6 +960,11 @@ jobs:
923960
working-directory: ${{env.DispatchBuildDir}}
924961
run: ctest -VV -R python-checker
925962

963+
964+
###################################
965+
### Profile Guided Optimization ###
966+
###################################
967+
926968
pgo:
927969
name: Profile Guided Optimization
928970
runs-on: ubuntu-latest
@@ -1033,6 +1075,11 @@ jobs:
10331075
- name: skupper-router cmake build/install
10341076
run: cmake --build "${RouterBuildDir}" --config ${BuildType} --target install --parallel 6
10351077

1078+
1079+
###################################
1080+
### AMD64 Container Image Build ###
1081+
###################################
1082+
10361083
container_amd64:
10371084
name: amd64 container image
10381085
runs-on: ubuntu-latest
@@ -1100,6 +1147,11 @@ jobs:
11001147
podman run --rm --volume ${PODMAN_SOCK}:/var/run/docker.sock docker.io/anchore/grype:latest \
11011148
--only-fixed --fail-on low ${{ env.ImageName }}
11021149
1150+
1151+
####################################
1152+
### ARM 64 Container Image Build ###
1153+
####################################
1154+
11031155
container_arm64:
11041156
name: arm64 container image
11051157
runs-on: self-hosted-arm64
@@ -1198,6 +1250,11 @@ jobs:
11981250
man skstat
11991251
man skmanage
12001252
1253+
1254+
###########
1255+
### RAT ###
1256+
###########
1257+
12011258
rat_check:
12021259
name: RAT Check
12031260
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)