DAOS-19248 test: Fix no tag match for Functional VM stages#18597
DAOS-19248 test: Fix no tag match for Functional VM stages#18597phender wants to merge 20 commits into
Conversation
Ensure Functional VM stages are skipped if no test tags match. Test-tag: test_always_passes_hw Skip-functional-on-el-8: false Skip-functional-on-el-9: false Skip-functional-on-leap-15: false Skip-functional-on-sles-15: false Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Ticket title is 'Update testing branches' |
Skip-test-hardware: true Test-tag: test_load_mpi test_setup_vm Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-18597/5/display/redirect |
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-18597/7/display/redirect |
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/13/execution/node/1065/log |
Skip-cancel-previous-builds: true Skip-functional-test: true SKip-fault-injection-testing: true Skip-unit-tests: true Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi test_setup_vm Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Test RPMs on Leap 15.5 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/15/execution/node/831/log |
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/15/execution/node/944/log |
In Build 15 the According to https://daosio.atlassian.net/browse/DAOS-18925, we need |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi test_setup_vm Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
sjip-cancel-previous-builds: true skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-9: true skip-fault-injection-testing: true Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Test RPMs on Leap 15.5 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-18597/17/display/redirect |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-9: true skip-fault-injection-testing: true Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Test RPMs on Leap 15.5 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos/job/PR-18597/18/display/redirect |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi test_setup_vm Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/19/execution/node/948/log |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi test_setup_vm Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Test RPMs on Leap 15.5 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/20/execution/node/973/log |
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/20/execution/node/1087/log |
This failure is expected until https://daosio.atlassian.net/browse/DAOS-15233 has been resolved. |
|
Note the improved artifacts for the RPM Test RPM stages: |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi test_setup_vm Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/22/execution/node/1057/log |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
The resolution for this is run the |
|
|
||
| set -uex | ||
|
|
||
| echo "${PRETTY_NAME:-Unknown OS}" |
There was a problem hiding this comment.
I also considered just running cat /etc/os-release, but this file is sourced in line 3.
| PYTHON_VERSION=\"${PYTHON_VERSION}\" \ | ||
| $(cat "$mydir/test_daos_node.sh")" | ||
| "bash -lc 'NODE=${nodelist[0]} DAOS_PKG_VERSION=$DAOS_PKG_VERSION PYTHON_VERSION=$PYTHON_VERSION \ | ||
| bash -s 2>&1 | tee /tmp/test_daos_rpms.log; exit \${PIPESTATUS[0]}'" \ |
There was a problem hiding this comment.
I considered just redirecting all output to the log, but I figured it would be good to have a backup incase the logs didn't get archived for some reason.
| label: params.CI_UNIT_VM1_LABEL, | ||
| jobStatus: job_status_internal, | ||
| nextVersion: next_version(), | ||
| imageVersion: 'el9.6', |
There was a problem hiding this comment.
Now runs on EL 9.6 as intended (instead of EL 9.7)
| label: params.CI_UNIT_VM1_LABEL, | ||
| jobStatus: job_status_internal, | ||
| nextVersion: next_version(), | ||
| imageVersion: 'leap15.6', |
There was a problem hiding this comment.
Continues to run on Leap 15.6
| imageVersion: 'el9.6', | ||
| instRpms: 'mercury-libfabric', | ||
| nodeList: env.NODELIST, | ||
| alwaysScript: 'ci/rpm/test_daos_post.sh \'Test RPMs on EL 9\'', |
There was a problem hiding this comment.
This is weird now because the reference to ci/rpm/test_daos.sh is hardcoded in pipeline-lib, but ci/rpm/test_daos_post.sh is specified here. IMO they should both be passed here and not hardcoded in pipeline-lib
There was a problem hiding this comment.
However, if that is a bigger fix I do not want to block on it
There was a problem hiding this comment.
Updated defaults in daos-stack/pipeline-lib#526
There was a problem hiding this comment.
What I mean is
- test_daos.sh
- lives in daos-stack/daos
- hardcoded reference in daos-stack/pipeline-lib
- IMO this is bad design but is pre-existing
- test_daos_post.sh
- lives in daos-stack/daos
- argument reference in daos-stack/daos
There was a problem hiding this comment.
Ah, I see. Yes I feel it would be a bit out of scope to address updating the defaults in testRpm.groovy as they would still affect other brnaches.
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
|
Test stage Test RPMs on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/24/execution/node/874/log |
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
skip-unit-tests: true skip-test-hardware: true skip-functional-on-el-8: false skip-functional-on-leap-15: false skip-functional-on-sles-15: false test-tag: test_load_mpi Signed-off-by: Phil Henderson <phillip.henderson@hpe.com>
| imageVersion: 'el9.6', | ||
| instRpms: 'mercury-libfabric', | ||
| nodeList: env.NODELIST, | ||
| alwaysScript: 'ci/rpm/test_daos_post.sh \'Test RPMs on EL 9\'', |
There was a problem hiding this comment.
What I mean is
- test_daos.sh
- lives in daos-stack/daos
- hardcoded reference in daos-stack/pipeline-lib
- IMO this is bad design but is pre-existing
- test_daos_post.sh
- lives in daos-stack/daos
- argument reference in daos-stack/daos
grom72
left a comment
There was a problem hiding this comment.
Can you adjust PR description - it is hard to follow the goal of this changes.
| } | ||
| } |
There was a problem hiding this comment.
| } | |
| } | |
| } // parallel | |
| } // script |
There was a problem hiding this comment.
The team seems to go back and forth on these types of comments. I've maintained them in the past only to have someone else remove them. When viewing code in a modern IDE, I think we can leave them out.
| archiveArtifactsArgs: [ | ||
| artifacts: 'Test RPMs on EL 9/'] | ||
| ), | ||
| 'Test RPMs on Leap 15': scriptedTestRpmStage( |
There was a problem hiding this comment.
Something is wrong here:
We have to use the string 'Test RPMs on Leap 15' in 5 places
There was a problem hiding this comment.
Some of this is inevitable:
- one is used for the build parameter name (trying to keep it in sync with the stage name for ease of use)
- three are used for the stage name - one to define a unique
parallel()entry, another to define the stage name in the method linked to said entry, and a third to reference the aforementioned matching build parameter name.
The other two are used as part of the runStage() map. I did try to reduce the number of times the stages are repeated here, but the only clean way to seed the runStage map w/ the stage names from the Jenkins build parameters keys resulted in an unordered list. Having an ordered list is very useful for displayRunStage(), so having one reference in the stageOrder list won out. The other references in updateRunStage() are needed for processing special build params / modes/ commit pragmas - for this stage there is only one when handling quickFunctional().
I did keep maintainability in mind, and at least a simple search and replace should cover most updates.
| imageVersion: 'leap15.6', | ||
| instRpms: 'mercury-libfabric', | ||
| nodeList: env.NODELIST, | ||
| alwaysScript: 'ci/rpm/test_daos_post.sh \'Test RPMs on Leap 15\'', |
There was a problem hiding this comment.
Let's indicate when this script is used.
| alwaysScript: 'ci/rpm/test_daos_post.sh \'Test RPMs on Leap 15\'', | |
| alwaysPostScript: 'ci/rpm/test_daos_post.sh \'Test RPMs on Leap 15\'', |
There was a problem hiding this comment.
The always_script argument name comes from the unitTest() method. It would be out of scope of this PR to update the names for the arguments in unitTest.groovy and I think it makes the code clearer if the argument names are maintained - especially when passed through.
| "bash -lc 'NODE=${nodelist[0]} DAOS_PKG_VERSION=$DAOS_PKG_VERSION PYTHON_VERSION=$PYTHON_VERSION \ | ||
| bash -s 2>&1 | tee /tmp/test_daos_rpms.log; exit \${PIPESTATUS[0]}'" \ | ||
| < "$mydir/test_daos_node.sh" |
There was a problem hiding this comment.
Less bash call easier to follow.
| "bash -lc 'NODE=${nodelist[0]} DAOS_PKG_VERSION=$DAOS_PKG_VERSION PYTHON_VERSION=$PYTHON_VERSION \ | |
| bash -s 2>&1 | tee /tmp/test_daos_rpms.log; exit \${PIPESTATUS[0]}'" \ | |
| < "$mydir/test_daos_node.sh" | |
| "export NODE='${nodelist[0]}' DAOS_PKG_VERSION='$DAOS_PKG_VERSION' PYTHON_VERSION='$PYTHON_VERSION'; | |
| bash -s < /dev/stdin |& tee /tmp/test_daos_rpms.log; | |
| exit \${PIPESTATUS[0]}" \ | |
| < "$mydir/test_daos_node.sh" |
There was a problem hiding this comment.
I'm not sure I find that to be clearer. It might just be a personal preference thing.
|
Test stage Functional on SLES 15 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/27/execution/node/1011/log |
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/27/execution/node/1065/log |
|
Test stage Functional on Leap 15 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/27/execution/node/1021/log |
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/27/execution/node/1031/log |
|
Test stage Functional on EL 8 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/29/execution/node/1026/log |
|
Test stage Functional on Leap 15 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/29/execution/node/1048/log |
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/29/execution/node/1058/log |
|
Test stage Functional on SLES 15 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18597/29/execution/node/1148/log |
Ensure Functional VM stages are skipped if no test tags match.
Test-tag: test_always_passes_hw
Skip-functional-on-el-8: false
Skip-functional-on-el-9: false
Skip-functional-on-leap-15: false
Skip-functional-on-sles-15: false
Steps for the author:
After all prior steps are complete: