Skip to content

Commit 6689188

Browse files
NirWolfergalnoam
authored andcommitted
[CI] issue: HPCINFRA-3249 Move Gtest to containers
Today Gtest is running on benni09, a single env that cannot run in parallel and that we cannot replicate in case of a failure. The best option is to move Gtest to containers running on Blossom cloud, and enable parallel run of the CI pipeline, which will offload some of the long build times we encounter due to build queues. Create gtest container definition under category 'tests' Remove agent 'beni09' and the agent selectors from the matrix file Setup environment (hugepages and ulimits) required to run gtest on containerized environment Allow CI pipeline to have concurrent runs Signed-off-by: NirWolfer <[email protected]>
1 parent e0d4799 commit 6689188

File tree

4 files changed

+27
-63
lines changed

4 files changed

+27
-63
lines changed

.ci/dockerfiles/Dockerfile.ubuntu22.04

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ RUN mkdir -p /var/run/sshd ~/.ssh && \
4141
echo " LogLevel ERROR" >> ~/.ssh/config
4242

4343
# Style target, installs clang-format-15
44+
FROM tests AS gtest
4445
FROM build AS style
4546
RUN apt-get update \
4647
&& apt-get install -y clang-15 clang-format-15 \

.ci/matrix_job.yaml

Lines changed: 18 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
---
22
job: LIBXLIO
33

4-
step_allow_single_selector: false
5-
64
registry_host: nbu-harbor.gtm.nvidia.com
75
registry_auth: swx-infra_harbor_credentials
86
registry_path: /swx-infra/media
@@ -179,8 +177,21 @@ runs_on_dockers:
179177
}
180178
- {name: 'secret-scan', url: '${registry_host}/toolbox/secret_scan:0.0.27', arch: 'x86_64', tag: '0.0.27', category: 'tool'}
181179

182-
runs_on_agents:
183-
- {nodeLabel: 'beni09', category: 'base'}
180+
- {
181+
file: '.ci/dockerfiles/Dockerfile.ubuntu22.04',
182+
arch: 'x86_64',
183+
name: 'gtest',
184+
uri: 'xlio/$arch/ubuntu22.04/$name',
185+
tag: '20251016',
186+
build_args: '--no-cache --target gtest',
187+
category: 'tests',
188+
annotations: [{ key: 'k8s.v1.cni.cncf.io/networks', value: 'sriov-cx6dx-p1@net1,sriov-cx6dx-p2@net2' }],
189+
limits: '{memory: 8Gi, cpu: 8000m, hugepages-2Mi: 8Gi, nvidia.com/sriov-cx6dx-p1: 1, nvidia.com/sriov-cx6dx-p2: 1}',
190+
requests: '{memory: 8Gi, cpu: 8000m, hugepages-2Mi: 8Gi, nvidia.com/sriov-cx6dx-p1: 1, nvidia.com/sriov-cx6dx-p2: 1}',
191+
caps_add: '[ IPC_LOCK, SYS_RESOURCE ]',
192+
runAsUser: '0',
193+
runAsGroup: '0'
194+
}
184195

185196
matrix:
186197
axes:
@@ -228,29 +239,17 @@ steps:
228239
- "{category: 'tests'}"
229240
- "{name: 'vg'}"
230241
- "{name: 'vg-worker-threads'}"
231-
agentSelector:
232-
- "{nodeLabel: 'skip-agent'}"
233-
run: |
234-
echo "Installing DOCA: ${DOCA_VERSION} ..."
235-
.ci/scripts/doca_install.sh
236-
237-
- name: Install Doca-host on Tools
242+
- "{name: 'style', category: 'tool', variant: 1}"
238243
run: |
239244
echo "Installing DOCA: ${DOCA_VERSION} ..."
240-
.ci/scripts/doca_install.sh
241-
containerSelector:
242-
- "{name: 'style', category: 'tool', variant: 1}"
243-
agentSelector:
244-
- "{nodeLabel: 'skip-agent'}"
245+
.ci/scripts/doca_install.sh
245246
246247
- name: Copyrights
247248
enable: ${do_copyrights}
248249
credentialsId: 'mellanox_github_credentials'
249250
run: env WORKSPACE=$PWD GITHUB_TOKEN=$MELLANOX_GH_TOKEN ./contrib/jenkins_tests/copyrights.sh
250251
containerSelector:
251252
- "{name: 'header-check', category: 'tool', variant: 1}"
252-
agentSelector:
253-
- "{nodeLabel: 'skip-agent'}"
254253
archiveArtifacts: '*.log,*.tar.gz'
255254
parallel: false
256255

@@ -264,8 +263,6 @@ steps:
264263
containerSelector:
265264
- "{category: 'base'}"
266265
- "{category: 'tests'}"
267-
agentSelector:
268-
- "{category: 'base'}"
269266
run: |
270267
[ "x${do_build}" == "xtrue" ] && action=yes || action=no
271268
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_build=${action} ./contrib/test_jenkins.sh
@@ -279,8 +276,6 @@ steps:
279276
enable: ${do_service}
280277
containerSelector:
281278
- "{category: 'base', variant:1}"
282-
agentSelector:
283-
- "{category: 'base', variant:1}"
284279
run: |
285280
[ "x${do_service}" == "xtrue" ] && action=yes || action=no
286281
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_tool=${action} ./contrib/test_jenkins.sh
@@ -294,8 +289,6 @@ steps:
294289
enable: ${do_package}
295290
containerSelector:
296291
- "{category: 'base'}"
297-
agentSelector:
298-
- "{nodeLabel: 'skip-agent'}"
299292
run: |
300293
[ "x${do_package}" == "xtrue" ] && action=yes || action=no
301294
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_rpm=${action} ./contrib/test_jenkins.sh
@@ -309,8 +302,6 @@ steps:
309302
enable: ${do_style}
310303
containerSelector:
311304
- "{name: 'style', category: 'tool'}"
312-
agentSelector:
313-
- "{nodeLabel: 'skip-agent'}"
314305
run: |
315306
[ "x${do_style}" == "xtrue" ] && action=yes || action=no
316307
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_style=${action} ./contrib/test_jenkins.sh
@@ -324,8 +315,6 @@ steps:
324315
enable: ${do_compiler}
325316
containerSelector:
326317
- "{name: 'toolbox', category: 'tool'}"
327-
agentSelector:
328-
- "{nodeLabel: 'skip-agent'}"
329318
run: |
330319
[ "x${do_compiler}" == "xtrue" ] && action=yes || action=no
331320
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_compiler=${action} ./contrib/test_jenkins.sh
@@ -340,8 +329,6 @@ steps:
340329
credentialsId: 'media_coverity_credentials'
341330
containerSelector:
342331
- "{name: 'toolbox', category: 'tool'}"
343-
agentSelector:
344-
- "{nodeLabel: 'skip-agent'}"
345332
run: |
346333
[ "x${do_coverity}" == "xtrue" ] && action=yes || action=no
347334
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_cov=${action} ./contrib/test_jenkins.sh
@@ -356,8 +343,6 @@ steps:
356343
enable: ${do_cppcheck}
357344
containerSelector:
358345
- "{name: 'xlio_static.cppcheck', category: 'tool', variant: 1}"
359-
agentSelector:
360-
- "{nodeLabel: 'skip-agent'}"
361346
run: |
362347
[ "x${do_cppcheck}" == "xtrue" ] && action=yes || action=no
363348
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_cppcheck=${action} ./contrib/test_jenkins.sh
@@ -371,8 +356,6 @@ steps:
371356
enable: ${do_csbuild}
372357
containerSelector:
373358
- "{name: 'xlio_static.csbuild', category: 'tool', variant: 1}"
374-
agentSelector:
375-
- "{nodeLabel: 'skip-agent'}"
376359
run: |
377360
[ "x${do_csbuild}" == "xtrue" ] && action=yes || action=no
378361
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_csbuild=${action} ./contrib/test_jenkins.sh
@@ -386,8 +369,6 @@ steps:
386369
enable: ${do_test}
387370
containerSelector:
388371
- "{name: 'sockperf'}"
389-
agentSelector:
390-
- "{nodeLabel: 'skip-agent'}"
391372
run: |
392373
[ "x${do_test}" == "xtrue" ] && action=yes || action=no
393374
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_run=${action} WORKER_THREADS=false ./contrib/test_jenkins.sh
@@ -401,8 +382,6 @@ steps:
401382
enable: ${do_test}
402383
containerSelector:
403384
- "{name: 'sockperf-worker-threads'}"
404-
agentSelector:
405-
- "{nodeLabel: 'skip-agent'}"
406385
run: |
407386
[ "x${do_test}" == "xtrue" ] && action=yes || action=no
408387
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_run=${action} WORKER_THREADS=true ./contrib/test_jenkins.sh
@@ -416,8 +395,6 @@ steps:
416395
#enable: ${do_unit_test}
417396
containerSelector:
418397
- "{name: 'unit-test', category: 'tool', variant: 1}"
419-
agentSelector:
420-
- "{nodeLabel: 'skip-agent'}"
421398
run: |
422399
env WORKSPACE=$PWD ./contrib/jenkins_tests/unit_test.sh
423400
parallel: false
@@ -429,9 +406,7 @@ steps:
429406
- name: Gtest
430407
enable: ${do_gtest}
431408
containerSelector:
432-
- "{name: 'skip-container'}"
433-
agentSelector:
434-
- "{nodeLabel: 'beni09'}"
409+
- "{name: 'gtest'}"
435410
run: |
436411
[ "x${do_gtest}" == "xtrue" ] && action=yes || action=no
437412
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_gtest=${action} ./contrib/test_jenkins.sh
@@ -447,8 +422,6 @@ steps:
447422
enable: ${do_valgrind}
448423
containerSelector:
449424
- "{name: 'vg'}"
450-
agentSelector:
451-
- "{nodeLabel: 'skip-agent'}"
452425
run: |
453426
[ "x${do_valgrind}" == "xtrue" ] && action=yes || action=no
454427
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_vg=${action} WORKER_THREADS=false ./contrib/test_jenkins.sh
@@ -463,8 +436,6 @@ steps:
463436
enable: ${do_valgrind}
464437
containerSelector:
465438
- "{name: 'vg-worker-threads'}"
466-
agentSelector:
467-
- "{nodeLabel: 'skip-agent'}"
468439
run: |
469440
[ "x${do_valgrind}" == "xtrue" ] && action=yes || action=no
470441
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_vg=${action} WORKER_THREADS=true ./contrib/test_jenkins.sh
@@ -479,8 +450,6 @@ steps:
479450
enable: ${do_commit}
480451
containerSelector:
481452
- "{name: 'toolbox', category: 'tool', variant:1}"
482-
agentSelector:
483-
- "{nodeLabel: 'skip-agent'}"
484453
run: |
485454
[ "x${do_commit}" == "xtrue" ] && action=yes || action=no
486455
env WORKSPACE=$PWD TARGET=${flags} jenkins_test_commit=${action} ./contrib/test_jenkins.sh
@@ -497,8 +466,6 @@ steps:
497466
- "{name: 'vg'}"
498467
- "{name: 'vg-worker-threads'}"
499468
- "{category: 'tests'}"
500-
agentSelector:
501-
- "{nodeLabel: 'beni09'}"
502469
run: |
503470
./.ci/artifacts.sh
504471
parallel: false
@@ -511,8 +478,6 @@ steps:
511478
enable: ${do_blackduck}
512479
containerSelector:
513480
- "{name: 'xlio_static.bduck', category:'tool'}"
514-
agentSelector:
515-
- "{nodeLabel: 'skip-agent'}"
516481
run: |
517482
# WA for possible CI-Demo bug: HPCINFRA-1614
518483
if ${do_blackduck} ; then
@@ -525,8 +490,6 @@ steps:
525490
enable: ${do_documentation_test}
526491
containerSelector:
527492
- "{name: 'documentation_test'}"
528-
agentSelector:
529-
- "{nodeLabel: 'skip-agent'}"
530493
run: |
531494
python3 generate_docs.py
532495
python3 src/core/config/generate_mappings.py

.ci/opensource_jjb.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
properties-content: |
1414
jjb_proj={jjb_proj}
1515
description: Do NOT edit this job through the Web GUI !
16-
concurrent: false
16+
concurrent: true
1717
parameters:
1818
- string:
1919
name: "sha1"

contrib/jenkins_tests/gtest.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
source $(dirname $0)/globals.sh
44

5+
# Fix hugepages for docker environments
6+
do_hugepages
7+
ulimit -l unlimited
8+
ulimit -c unlimited
9+
510
echo "Checking for gtest ..."
611

712
if [[ -z "${MANUAL_RUN}" ]]; then
@@ -11,11 +16,6 @@ if [[ -z "${MANUAL_RUN}" ]]; then
1116
exit 1
1217
fi
1318

14-
if [ $(command -v ibdev2netdev >/dev/null 2>&1 || echo $?) ]; then
15-
echo "[SKIP] ibdev2netdev tool does not exist"
16-
exit 1
17-
fi
18-
1919
cd $WORKSPACE
2020

2121
rm -rf $gtest_dir
@@ -58,8 +58,8 @@ function do_get_addrs()
5858
echo $gtest_ip_list
5959
}
6060

61-
gtest_opt="--addr=$(do_get_addrs 'eth' ${opt2})"
62-
gtest_opt_ipv6="--addr=$(do_get_addrs 'inet6' ${opt2}) -r fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" # Remote - Dummy Address
61+
gtest_opt="--addr=$(ip -f inet addr show net1 | awk '/inet / {print $2}' | cut -d/ -f1),$(ip -f inet addr show net2 | awk '/inet / {print $2}' | cut -d/ -f1)"
62+
gtest_opt_ipv6="--addr=$(ip -f inet6 addr show net1 | grep global | awk '/inet6 / {print $2}' | cut -d/ -f1),$(ip -f inet6 addr show net2 | grep global | awk '/inet6 / {print $2}' | cut -d/ -f1) -r fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" #
6363

6464
set +eE
6565

0 commit comments

Comments
 (0)