PIPELINE CODE ================================================================================================= stage "Run tests: Common Tests" for (list in entries(TESTLIST)) { //Build list of common tests that need to be run. def ret=sh (script: "ssh -A root@${list[0]}.${DOMAIN} 'ls /tmp/tests/common -p | grep -v / | tr \'\\\n\' \'\\,\' '", returnStdout: true) println ret def joblist = [] joblist << ret for (job in joblist) { println job println 'Attempting to run job' //sh "ssh -A root@${list[0]}.${DOMAIN} 'chmod 755 /tmp/tests/${list[0].minus(/2/)}/${test}; /tmp/tests/${list[0].minus(/2/)}/${test} > /tmp/tests/${list[0]}-${test}.tap'" sh "ssh -A root@${list[0]}.${DOMAIN} 'cd /tmp/tests/common; ./${job}>${job}.tap'" //copy the TAP output to workspace sh "scp root@${list[0]}.${DOMAIN}:/tmp/tests/common/${job}.tap ${WORKSPACE}" step([$class: 'TapPublisher', testResults: "**/${job}.tap"]) } } RESULTS ================================================================================================= Entering stage Run tests: Common Tests Proceeding [Pipeline] sh [workspace] Running shell script + ssh -A root@lab.mydomain.net ls /tmp/tests/common -p | grep -v / | tr , Warning: Permanently added 'lab.mydomain.net,10.196.36.78' (ECDSA) to the list of known hosts. [Pipeline] echo widget_test [Pipeline] echo widget_test [Pipeline] echo Attempting to run job [Pipeline] sh [workspace] Running shell script + ssh -A root@lab.mydomain.net cd /tmp/tests/common; ./widget_test >widget_test .tap Warning: Permanently added 'lab.mydomain.net,10.196.36.78' (ECDSA) to the list of known hosts. 1..2 ok 1 - /etc/scripts/sync_web_mvspaging is executable ok 2 - /etc/periodic/monthly/update-unbound-root-hints is executable ash: .tap: not found