From be87185f6de68d1ec5474d2418e85e0732f4be27 Mon Sep 17 00:00:00 2001 From: George Joseph <gjoseph@digium.com> Date: Sat, 17 Nov 2018 12:07:32 -0700 Subject: [PATCH] CI: Pass work directory to runTestsuite The testsuite can now use a user-specified work directory for all it's temp files. This allows the docker containers to use a tmpfs backed directory for the temp files instead of it's own write-layer image. * runTestsuite.sh now accepts a --work-dir command line argument that gets exported as AST_WORK_DIR before running the testsuite. * gates.jenkinsfile now specifies --work-dir to be <testsuite_dir>/astroot. Since the Asterisk CI docker hosts now mount /srv/jenkins/workspace on a tmpfs, asterisk should be compiled and the testsuite run all in memory. Change-Id: If5ee905a15821296c355bb84cda38950ad8edc45 (cherry picked from commit a335f4c9adb0a00211345634f61917bdf5b412c2) --- tests/CI/gates.jenkinsfile | 2 +- tests/CI/runTestsuite.sh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/CI/gates.jenkinsfile b/tests/CI/gates.jenkinsfile index 983564760f..7be576861b 100644 --- a/tests/CI/gates.jenkinsfile +++ b/tests/CI/gates.jenkinsfile @@ -197,7 +197,7 @@ pipeline { ] } - sh "sudo tests/CI/runTestsuite.sh --testsuite-dir='${groupDir}' --testsuite-command='${groupTestcmd}'" + sh "sudo tests/CI/runTestsuite.sh --work-dir='${groupDir}/astroot' --testsuite-dir='${groupDir}' --testsuite-command='${groupTestcmd}'" archiveArtifacts allowEmptyArchive: true, defaultExcludes: false, fingerprint: true, artifacts: "${groupDir}/asterisk-test-suite-report.xml, ${groupDir}/logs/**, ${groupDir}/core*.txt" diff --git a/tests/CI/runTestsuite.sh b/tests/CI/runTestsuite.sh index 9ee7718338..466991a44c 100755 --- a/tests/CI/runTestsuite.sh +++ b/tests/CI/runTestsuite.sh @@ -5,6 +5,11 @@ TEST_TIMEOUT=600 source $CIDIR/ci.functions ASTETCDIR=$DESTDIR/etc/asterisk +if [ x"$WORK_DIR" != x ] ; then + export AST_WORK_DIR="$(readlink -f $WORK_DIR)" + mkdir -p "$AST_WORK_DIR" +fi + pushd $TESTSUITE_DIR ./cleanup-test-remnants.sh @@ -14,7 +19,7 @@ if [ $REALTIME -eq 1 ] ; then fi export PYTHONPATH=./lib/python/ -echo "Running tests ${TESTSUITE_COMMAND}" +echo "Running tests ${TESTSUITE_COMMAND} ${AST_WORK_DIR:+with work directory ${AST_WORK_DIR}}" ./runtests.py --cleanup --timeout=${TEST_TIMEOUT} ${TESTSUITE_COMMAND} | contrib/scripts/pretty_print --no-color --no-timer --term-width=120 --show-errors || : if [ $REALTIME -eq 1 ] ; then -- GitLab