52
52
strategy :
53
53
fail-fast : false
54
54
matrix :
55
- os : [ubuntu-24.04]
55
+ os : [ubuntu-24.04, ubuntu-24.04-arm ]
56
56
buildType : [Debug, RelWithDebInfo]
57
57
runtimeCheck : [asan, tsan]
58
58
protonGitRef :
@@ -140,13 +140,6 @@ jobs:
140
140
- name : Create Build and Install directories
141
141
run : mkdir -p "${ProtonBuildDir}" "${RouterBuildDir}" "${InstallPrefix}"
142
142
143
- - name : Setup python
144
- uses : actions/setup-python@v5
145
- with :
146
- python-version : 3.9
147
- architecture : x64
148
- check-latest : true
149
-
150
143
- name : Install Linux build dependencies
151
144
run : |
152
145
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
@@ -178,8 +171,8 @@ jobs:
178
171
cmake "${{github.workspace}}/skupper-router" \
179
172
"-DCMAKE_INSTALL_PREFIX=${InstallPrefix}" \
180
173
"-DCMAKE_BUILD_TYPE=${BuildType}" \
181
- "-DPYTHON_TEST_COMMAND='-m;pytest;-vs;--timeout=400 ;--junit-prefix=pytest.\${py_test_module};--junit-xml=junitxmls/\${py_test_module}.xml;--pyargs;\${py_test_module}'" \
182
- "-DPYTHON_TEST_COMMAND='-m;pytest;-vs;--timeout=400 ;--junit-prefix=pytest.\${py_test_module};--junit-xml=junitxmls/\${py_test_module}.xml;--pyargs;\${py_test_module}'" \
174
+ "-DPYTHON_TEST_COMMAND='-m;pytest;-vs;--timeout=500 ;--junit-prefix=pytest.\${py_test_module};--junit-xml=junitxmls/\${py_test_module}.xml;--pyargs;\${py_test_module}'" \
175
+ "-DPYTHON_TEST_COMMAND='-m;pytest;-vs;--timeout=500 ;--junit-prefix=pytest.\${py_test_module};--junit-xml=junitxmls/\${py_test_module}.xml;--pyargs;\${py_test_module}'" \
183
176
"-GNinja" \
184
177
${RouterCMakeExtraArgs}
185
178
@@ -221,7 +214,7 @@ jobs:
221
214
strategy :
222
215
fail-fast : false
223
216
matrix :
224
- os : [ubuntu-24.04]
217
+ os : [ubuntu-24.04, ubuntu-24.04-arm ]
225
218
buildType : [Debug, RelWithDebInfo]
226
219
runtimeCheck : [asan, tsan]
227
220
protonGitRef :
@@ -267,13 +260,6 @@ jobs:
267
260
with :
268
261
name : skupper_router_wrk_${{env.JOB_IDENTIFIER}}
269
262
270
- - name : Setup python
271
- uses : actions/setup-python@v5
272
- with :
273
- python-version : 3.9
274
- architecture : x64
275
- check-latest : true
276
-
277
263
- name : Install Linux runtime/test dependencies
278
264
run : |
279
265
sudo apt update; sudo apt install -y libdw1 libsasl2-2 libsasl2-modules sasl2-bin libjsoncpp25 libwebsockets19t64 libbenchmark1.8.3 pixz curl ncat gdb elfutils findutils file python3-dbg
@@ -293,163 +279,17 @@ jobs:
293
279
sudo sysctl -w kernel.core_pattern="coredump.%e.%p"
294
280
ulimit -c unlimited
295
281
sudo sysctl -w vm.mmap_rnd_bits=28
296
- ctest --timeout 1200 -V --output-junit Testing/Test.xml --no-compress-output -I ${{matrix.shard}},,${{matrix.shards}} -j12 ${{env.RouterCTestExtraArgs}}
297
-
298
- - name : Report coredump stacktraces (if any tests failed)
299
- if : ${{ failure() }}
300
- run : |
301
- find -name 'coredump*' -exec ${{github.workspace}}/skupper-router/scripts/gha_analyze_coredump.sh {} \;
302
-
303
- - name : Upload test results
304
- uses : actions/upload-artifact@v4
305
- if : ${{ ! cancelled() }}
306
- with :
307
- name : Test_Results_${{env.JOB_IDENTIFIER}}_${{matrix.shard}}
308
- path : ${{env.RouterBuildDir}}/tests/junitxmls/*.xml
309
-
310
- - name : Delete logs from passing tests
311
- if : ${{ failure() }}
312
- continue-on-error : true
313
- run : python3 ${{github.workspace}}/skupper-router/scripts/gha_purge_successful_test_logs.py --build-dir=${{env.RouterBuildDir}} --no-dry-run
314
-
315
- - name : Upload log files (if any tests failed)
316
- uses : actions/upload-artifact@v4
317
- if : failure()
318
- with :
319
- name : testLogs_${{env.JOB_IDENTIFIER}}_${{matrix.shard}}
320
- path : |
321
- ${{env.RouterBuildDir}}/tests
322
-
323
- - name : Upload core files (if any)
324
- uses : actions/upload-artifact@v4
325
- if : failure()
326
- with :
327
- name : cores_${{env.JOB_IDENTIFIER}}_${{matrix.shard}}
328
- path : |
329
- **/coredump*
330
-
331
-
332
- # ###################
333
- # ## ARM runner ###
334
- # ###################
335
-
336
- compile_and_test_pi5 :
337
- name : " Compile and Test on ubuntu-24.04-arm"
338
- runs-on : ubuntu-24.04-arm
339
- env :
340
- CC : ' gcc-12'
341
- CXX : ' g++-12'
342
- BuildType : RelWithDebInfo
343
- ProtonBuildDir : ${{github.workspace}}/qpid-proton/build
344
- RouterBuildDir : ${{github.workspace}}/skupper-router/build
345
- InstallPrefix : ${{github.workspace}}/install
346
- VERBOSE : 1
347
- protonRepository : " ${{ github.event.inputs.protonRepository || 'apache/qpid-proton' }}"
348
- protonBranch : " ${{ github.event.inputs.protonBranch || 'main' }}"
349
- ProtonCMakeExtraArgs : >
350
- -DCMAKE_C_COMPILER_LAUNCHER=ccache
351
- -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
352
- -DBUILD_BINDINGS=python
353
- -DPython_EXECUTABLE=/usr/bin/python3
354
- -DBUILD_TOOLS=OFF
355
- -DBUILD_EXAMPLES=OFF
356
- -DBUILD_TESTING=OFF
357
- -DENABLE_FUZZ_TESTING=OFF
358
- -DRUNTIME_CHECK=OFF
359
- -DBUILD_TLS=ON
360
- RouterCMakeExtraArgs : >
361
- -DCMAKE_C_COMPILER_LAUNCHER=ccache
362
- -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
363
- -DPython_EXECUTABLE=/usr/bin/python3
364
- -DRUNTIME_CHECK=OFF
365
- -DENABLE_PROFILE_GUIDED_OPTIMIZATION=OFF
366
- steps :
367
- - uses : actions/checkout@v4
368
- with :
369
- repository : ${{ env.protonRepository }}
370
- ref : main
371
- path : ' qpid-proton'
372
- - uses : actions/checkout@v4
373
- with :
374
- path : ' skupper-router'
375
- - name : Install Linux build dependencies
376
- run : |
377
- sudo apt update; sudo apt install -y flake8 mypy pylint python3-qpid-proton libpython3-dev ninja-build ccache libwebsockets-dev libnghttp2-dev nginx python3-build python3-cffi python3-pip python3-setuptools python3-wheel tox
378
- # https://cristianadam.eu/20200113/speeding-up-c-plus-plus-github-actions-using-ccache/
379
- # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#environment-files
380
- - name : Prepare ccache timestamp
381
- id : ccache_cache_timestamp
382
- shell : cmake -P {0}
383
- run : |
384
- string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
385
- file(APPEND "$ENV{GITHUB_OUTPUT}" "timestamp=${current_date}")
386
- - uses : actions/cache@v4
387
- env :
388
- cache-name : cache-ccache
389
- with :
390
- path : .ccache
391
- key : ${{ github.workflow }}-main-${{ env.cache-name }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
392
- restore-keys : |
393
- ${{ github.workflow }}-main-${{ env.cache-name }}
394
-
395
- - name : Create Build and Install directories
396
- run : mkdir -p "${ProtonBuildDir}" "${RouterBuildDir}" "{InstallPrefix}"
397
-
398
- - name : Zero ccache stats
399
- run : ccache -z
400
-
401
- - name : qpid-proton cmake configure
402
- working-directory : ${{env.ProtonBuildDir}}
403
- run : >
404
- cmake "${{github.workspace}}/qpid-proton" \
405
- "-DCMAKE_INSTALL_PREFIX=${InstallPrefix}" \
406
- "-DCMAKE_BUILD_TYPE=${BuildType}" \
407
- ${ProtonCMakeExtraArgs}
408
-
409
- - name : qpid-proton cmake build/install
410
- run : cmake --build "${ProtonBuildDir}" --config ${BuildType} --target install --parallel 2
411
-
412
- - name : Display ccache stats
413
- run : ccache -s
414
-
415
- - name : skupper-router cmake configure
416
- working-directory : ${{env.RouterBuildDir}}
417
- run : |
418
- cmake "${{github.workspace}}/skupper-router" \
419
- "-DCMAKE_INSTALL_PREFIX=${InstallPrefix}" \
420
- "-DCMAKE_BUILD_TYPE=${BuildType}" \
421
- "-DPYTHON_TEST_COMMAND='-m;pytest;-vs;--timeout=400;--junit-prefix=pytest.\${py_test_module};--junit-xml=junitxmls/\${py_test_module}.xml;--pyargs;\${py_test_module}'" \
422
- ${RouterCMakeExtraArgs}
423
-
424
- - name : skupper-router cmake build/install
425
- run : cmake --build "${RouterBuildDir}" --config ${BuildType} --target install --parallel 6
426
-
427
- - name : Install Python runtime/test dependencies
428
- run : python3 -m pip install --break-system-packages -r ${{github.workspace}}/skupper-router/requirements-dev.txt
429
-
430
- - name : Install Linux runtime/test dependencies
431
- run : |
432
- sudo apt update; sudo apt install -y libdw1 libsasl2-2 libsasl2-modules sasl2-bin libjsoncpp25 pixz curl libwebsockets-dev ncat gdb elfutils findutils file python3-dbg
433
-
434
- - name : install qpid-proton python wheel
435
- run : python3 -m pip install --break-system-packages $(find ${ProtonBuildDir}/python/dist -name 'python_qpid_proton*.whl')
436
-
437
- - name : CTest
438
- working-directory : ${{env.RouterBuildDir}}
439
- run : |
440
- ulimit -c unlimited
441
- threads=4
442
- ctest --timeout 1200 -V --output-junit Testing/Test.xml --output-on-failure --no-compress-output -j${threads}
282
+ if [[ ${{ matrix.runtimeCheck == 'asan'}} ]] && [[ ${{ matrix.os == 'ubuntu-24.04-arm'}} ]]; then
283
+ echo "SKIP_HTTP_METRICS_TEST=true" >> $GITHUB_ENV
284
+ export SKIP_HTTP_METRICS_TEST="true"
285
+ fi
286
+ ctest --timeout 1300 -V --output-junit Testing/Test.xml --no-compress-output -I ${{matrix.shard}},,${{matrix.shards}} -j12 ${{env.RouterCTestExtraArgs}}
443
287
444
288
- name : Report coredump stacktraces (if any tests failed)
445
289
if : ${{ failure() }}
446
290
run : |
447
291
find -name 'coredump*' -exec ${{github.workspace}}/skupper-router/scripts/gha_analyze_coredump.sh {} \;
448
292
449
- - name : Dump dmesg (on failure)
450
- if : ${{ failure() }}
451
- run : dmesg
452
-
453
293
- name : Upload test results
454
294
uses : actions/upload-artifact@v4
455
295
if : ${{ ! cancelled() }}
@@ -478,7 +318,6 @@ jobs:
478
318
path : |
479
319
**/coredump*
480
320
481
-
482
321
# ###################
483
322
# ## Fedora Tests ###
484
323
# ###################
@@ -802,7 +641,7 @@ jobs:
802
641
threads=6
803
642
fi
804
643
805
- ctest --timeout 1200 -V --output-junit Testing/Test.xml --output-on-failure --no-compress-output -I ${{matrix.shard}},,${{matrix.shards}} -j${threads} ${{env.RouterCTestExtraArgs}}
644
+ ctest --timeout 1300 -V --output-junit Testing/Test.xml --output-on-failure --no-compress-output -I ${{matrix.shard}},,${{matrix.shards}} -j${threads} ${{env.RouterCTestExtraArgs}}
806
645
807
646
- name : Process C Coverage
808
647
if : ${{ !cancelled() && matrix.buildType == 'Coverage' }}
0 commit comments