diff --git a/Jenkinsfile b/Jenkinsfile index d1b4d4abc1e..b8fd0b523da 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -56,7 +56,7 @@ Map nlt_test() { print 'Unstash failed, results from NLT stage will not be included' } sh label: 'Fault injection testing using NLT', - script: './ci/docker_nlt.sh --class-name el8.fault-injection fi' + script: './ci/docker_nlt.sh --class-name el9.fault-injection fi' List filesList = [] filesList.addAll(findFiles(glob: '*.memcheck.xml')) int vgfail = 0 @@ -317,19 +317,19 @@ pipeline { description: 'Continue testing if a previous stage is Unstable') booleanParam(name: 'CI_UNIT_TEST', defaultValue: true, - description: 'Run the Unit Test on EL 8 test stage') + description: 'Run the Unit Test test stage') booleanParam(name: 'CI_NLT_TEST', defaultValue: true, description: 'Run the NLT test stage') booleanParam(name: 'CI_UNIT_TEST_MEMCHECK', defaultValue: true, - description: 'Run the Unit Test with memcheck on EL 8 test stage') - booleanParam(name: 'CI_FI_el8_TEST', + description: 'Run the Unit Test with memcheck test stage') + booleanParam(name: 'CI_FI_TEST', defaultValue: true, - description: 'Run the Fault injection testing on EL 8 test stage') - booleanParam(name: 'CI_TEST_EL8_RPMs', + description: 'Run the Fault injection testing test stage') + booleanParam(name: 'CI_TEST_EL_RPMs', defaultValue: true, - description: 'Run the Test RPMs on EL 8 test stage') + description: 'Run the Test RPMs on EL stage') booleanParam(name: 'CI_TEST_LEAP15_RPMs', defaultValue: true, description: 'Run the Test RPMs on Leap 15 test stage') @@ -343,19 +343,17 @@ pipeline { defaultValue: false, description: 'Run the Functional on EL 8 with Valgrind test stage') booleanParam(name: 'CI_FUNCTIONAL_el8_TEST', - defaultValue: true, + defaultValue: false, description: 'Run the Functional on EL 8 test stage') booleanParam(name: 'CI_FUNCTIONAL_el9_TEST', - defaultValue: false, + defaultValue: true, description: 'Run the Functional on EL 9 test stage') booleanParam(name: 'CI_FUNCTIONAL_leap15_TEST', defaultValue: false, - description: 'Run the Functional on Leap 15 test stage' + - ' Requires CI_MORE_FUNCTIONAL_PR_TESTS') + description: 'Run the Functional on Leap 15 test stage') booleanParam(name: 'CI_FUNCTIONAL_ubuntu20_TEST', defaultValue: false, - description: 'Run the Functional on Ubuntu 20.04 test stage' + - ' Requires CI_MORE_FUNCTIONAL_PR_TESTS') + description: 'Run the Functional on Ubuntu 20.04 test stage') booleanParam(name: 'CI_FUNCTIONAL_HARDWARE_TEST_SKIP', defaultValue: false, description: 'Skip Functional Hardware (Test Hardware) stage') @@ -529,7 +527,7 @@ pipeline { expression { !skip_build_stage() } } parallel { - stage('Build on EL 8.8') { + stage('Build on EL 8') { when { beforeAgent true expression { !skip_build_stage('el8') } @@ -544,7 +542,8 @@ pipeline { " -t ${sanitized_JOB_NAME()}-el8 " + ' --build-arg DAOS_PACKAGES_BUILD=no ' + ' --build-arg DAOS_KEEP_SRC=yes ' + - ' --build-arg REPOS="' + prRepos() + '"' + ' --build-arg REPOS="' + prRepos() + '"' + + ' --build-arg POINT_RELEASE=.10 ' } } steps { @@ -581,7 +580,7 @@ pipeline { } } } - stage('Build on EL 9.6') { + stage('Build on EL 9') { when { beforeAgent true expression { !skip_build_stage('el9') } @@ -597,7 +596,7 @@ pipeline { ' --build-arg DAOS_PACKAGES_BUILD=no ' + ' --build-arg DAOS_KEEP_SRC=yes ' + ' --build-arg REPOS="' + prRepos() + '"' + - ' --build-arg POINT_RELEASE=.6 ' + ' --build-arg POINT_RELEASE=.7 ' } } steps { @@ -634,7 +633,7 @@ pipeline { } } } - stage('Build on Leap 15.5') { + stage('Build on Leap 15') { when { beforeAgent true expression { !skip_build_stage('leap15') } @@ -684,7 +683,7 @@ pipeline { } } } - stage('Build on Leap 15.5 with Intel-C and TARGET_PREFIX') { + stage('Build on Leap 15 with Intel-C and TARGET_PREFIX') { when { beforeAgent true expression { !skip_build_stage('leap15', 'icc') } @@ -730,7 +729,7 @@ pipeline { expression { !skipStage() } } parallel { - stage('Unit Test on EL 8.8') { + stage('Unit Test') { when { beforeAgent true expression { !skipStage() } @@ -739,11 +738,14 @@ pipeline { label cachedCommitPragma(pragma: 'VM1-label', def_val: params.CI_UNIT_VM1_LABEL) } steps { - job_step_update( - unitTest(timeout_time: 60, - unstash_opt: true, - inst_repos: daosRepos(), - inst_rpms: unitPackages())) + job_step_update( + unitTest(timeout_time: 60, + unstash_opt: true, + inst_repos: daosRepos(), + inst_rpms: unitPackages(target: 'el9'), + image_version: 'el9.7', + ) + ) } post { always { @@ -752,7 +754,7 @@ pipeline { } } } - stage('Unit Test bdev on EL 8.8') { + stage('Unit Test bdev') { when { beforeAgent true expression { !skipStage() } @@ -765,7 +767,8 @@ pipeline { unitTest(timeout_time: 60, unstash_opt: true, inst_repos: daosRepos(), - inst_rpms: unitPackages())) + inst_rpms: unitPackages(target: 'el9'), + image_version: 'el9.7')) } post { always { @@ -774,7 +777,7 @@ pipeline { } } } - stage('NLT on EL 8.8') { + stage('NLT') { when { beforeAgent true expression { params.CI_NLT_TEST && !skipStage() } @@ -789,7 +792,8 @@ pipeline { test_script: 'ci/unit/test_nlt.sh', unstash_opt: true, unstash_tests: false, - inst_rpms: unitPackages())) + inst_rpms: unitPackages(target: 'el9'), + image_version: 'el9.7')) // recordCoverage(tools: [[parser: 'COBERTURA', pattern:'nltir.xml']], // skipPublishingChecks: true, // id: 'tlc', name: 'Fault Injection Interim Report') @@ -800,7 +804,7 @@ pipeline { unitTestPost artifacts: ['nlt_logs/'], testResults: 'nlt-junit.xml', always_script: 'ci/unit/test_nlt_post.sh', - valgrind_stash: 'el8-gcc-nlt-memcheck' + valgrind_stash: 'nlt-memcheck' recordIssues enabledForFailure: true, failOnError: false, ignoreQualityGate: true, @@ -814,7 +818,7 @@ pipeline { } } } - stage('Unit Test with memcheck on EL 8.8') { + stage('Unit Test with memcheck') { when { beforeAgent true expression { !skipStage() } @@ -828,18 +832,19 @@ pipeline { unstash_opt: true, ignore_failure: true, inst_repos: daosRepos(), - inst_rpms: unitPackages())) + inst_rpms: unitPackages(target: 'el9'), + image_version: 'el9.7')) } post { always { unitTestPost artifacts: ['unit_test_memcheck_logs.tar.gz', 'unit_test_memcheck_logs/**/*.log'], - valgrind_stash: 'el8-gcc-unit-memcheck' + valgrind_stash: 'unit-memcheck' job_status_update() } } - } // stage('Unit Test with memcheck on EL 8.8') - stage('Unit Test bdev with memcheck on EL 8.8') { + } // stage('Unit Test with memcheck') + stage('Unit Test bdev with memcheck') { when { beforeAgent true expression { !skipStage() } @@ -853,17 +858,18 @@ pipeline { unstash_opt: true, ignore_failure: true, inst_repos: daosRepos(), - inst_rpms: unitPackages())) + inst_rpms: unitPackages(target: 'el9'), + image_version: 'el9.7')) } post { always { unitTestPost artifacts: ['unit_test_memcheck_bdev_logs.tar.gz', 'unit_test_memcheck_bdev_logs/**/*.log'], - valgrind_stash: 'el8-gcc-unit-memcheck-bdev' + valgrind_stash: 'unit-bdev-memcheck' job_status_update() } } - } // stage('Unit Test bdev with memcheck on EL 8') + } // stage('Unit Test bdev with memcheck') } } stage('Test') { @@ -990,14 +996,14 @@ pipeline { } } // post } // stage('Functional on Ubuntu 20.04') - stage('Fault injection testing on EL 8.8') { + stage('Fault injection testing on EL 9.7') { when { beforeAgent true expression { !skipStage() } } agent { dockerfile { - filename 'utils/docker/Dockerfile.el.8' + filename 'utils/docker/Dockerfile.el.9' label 'docker_runner' additionalBuildArgs dockerBuildArgs(repo_type: 'stable', parallel_build: true, @@ -1040,16 +1046,16 @@ pipeline { stash name: 'fault-inject-valgrind', includes: '*.memcheck.xml', allowEmpty: true - archiveArtifacts artifacts: 'nlt_logs/el8.fault-injection/', + archiveArtifacts artifacts: 'nlt_logs/el9.fault-injection/', allowEmptyArchive: true job_status_update() } } - } // stage('Fault injection testing on EL 8.8') - stage('Test RPMs on EL 8.6') { + } // stage('Fault injection testing on EL 9.7') + stage('Test RPMs on EL 9.6') { when { beforeAgent true - expression { params.CI_TEST_EL8_RPMs && !skipStage() } + expression { !skipStage() } } agent { label params.CI_UNIT_VM1_LABEL @@ -1066,7 +1072,7 @@ pipeline { rpm_test_post(env.STAGE_NAME, env.NODELIST) } } - } // stage('Test RPMs on EL 8.6') + } // stage('Test RPMs on EL 9.6') stage('Test RPMs on Leap 15.5') { when { beforeAgent true @@ -1259,8 +1265,8 @@ pipeline { } // stages post { always { - valgrindReportPublish valgrind_stashes: ['el8-gcc-nlt-memcheck', - 'el8-gcc-unit-memcheck', + valgrindReportPublish valgrind_stashes: ['nlt-memcheck', + 'unit-memcheck', 'fault-inject-valgrind'] job_status_update('final_status') jobStatusWrite(job_status_internal) diff --git a/ci/provisioning/post_provision_config_common_functions.sh b/ci/provisioning/post_provision_config_common_functions.sh index 0b3d9413ab2..b5a217cff7a 100755 --- a/ci/provisioning/post_provision_config_common_functions.sh +++ b/ci/provisioning/post_provision_config_common_functions.sh @@ -100,7 +100,9 @@ retry_dnf() { if command -v dnf4; then dnfx="dnf4" fi - "$dnfx" config-manager --disable 'epel*' || true + if "$dnfx" repolist | grep -q '^epel'; then + "$dnfx" config-manager --disable 'epel*' + fi fi return 0 fi diff --git a/ci/provisioning/post_provision_config_nodes_EL.sh b/ci/provisioning/post_provision_config_nodes_EL.sh index c9257d87c22..d424ef5ccad 100644 --- a/ci/provisioning/post_provision_config_nodes_EL.sh +++ b/ci/provisioning/post_provision_config_nodes_EL.sh @@ -28,8 +28,5 @@ group_repo_post() { distro_custom() { # TODO: This code is not exiting on failure. - # Use a more recent python version for unit testing, this allows us to also test installing - # pydaos into virtual environments. - dnf -y install python39 python39-devel dnf -y install python3.11 python3.11-devel } diff --git a/ci/unit/required_packages.sh b/ci/unit/required_packages.sh index 5a57b0cb054..4790812779c 100755 --- a/ci/unit/required_packages.sh +++ b/ci/unit/required_packages.sh @@ -7,16 +7,17 @@ # set -eu -# No longer used but provided by pipeline-lib +# Provided by pipeline-lib # distro="$1" # quick_build="${2:-false}" OPENMPI_VER="" PY_MINOR_VER="" -export DISTRO="el8" # should also work for el9 -pkgs="$(utils/rpms/package_version.sh argobots lib) \ - boost-python3$PY_MINOR_VER-devel \ +DISTRO="${1:?ERROR: Missing distro argument. Usage: $0 }" +export DISTRO="${DISTRO%%.*}" + +pkgs="boost-python3$PY_MINOR_VER-devel \ capstone \ $(utils/rpms/package_version.sh argobots lib) \ $(utils/rpms/package_version.sh argobots debug) \