From 865a9be1b9efeb10d016b79ff2bee25ba27f2700 Mon Sep 17 00:00:00 2001 From: Wojtek Porczyk Date: Mon, 30 Nov 2020 15:57:50 +0100 Subject: [PATCH] [CI] Refactor common stage-test Also remove central artifacts.jenkinsfile, which in hindsight was a bad, if-ridden idea. The try/finally should be exactly around the sh block which generates the junit file in question. --- .ci/lib/artifacts.jenkinsfile | 4 -- ...kinsfile => stage-test-direct.jenkinsfile} | 17 +----- ...jenkinsfile => stage-test-sgx.jenkinsfile} | 2 +- .ci/lib/stage-test-simple-sgx.jenkinsfile | 30 ---------- .ci/lib/stage-test.jenkinsfile | 56 +++++++++++++++++++ ...x-direct-ubuntu16.04-gcc-debug.jenkinsfile | 7 +-- ...direct-ubuntu16.04-gcc-release.jenkinsfile | 7 +-- ...x-direct-ubuntu18.04-gcc-debug.jenkinsfile | 7 +-- ...direct-ubuntu18.04-gcc-release.jenkinsfile | 7 +-- ...x-ubuntu16.04-gcc-release-apps.jenkinsfile | 6 +- ...ux-sgx-ubuntu16.04-gcc-release.jenkinsfile | 6 +- ...x-ubuntu18.04-gcc-release-apps.jenkinsfile | 6 +- ...ux-sgx-ubuntu18.04-gcc-release.jenkinsfile | 6 +- 13 files changed, 70 insertions(+), 91 deletions(-) delete mode 100644 .ci/lib/artifacts.jenkinsfile rename .ci/lib/{stage-test-all-nosgx.jenkinsfile => stage-test-direct.jenkinsfile} (90%) rename .ci/lib/{stage-test-apps-sgx.jenkinsfile => stage-test-sgx.jenkinsfile} (99%) delete mode 100644 .ci/lib/stage-test-simple-sgx.jenkinsfile create mode 100644 .ci/lib/stage-test.jenkinsfile diff --git a/.ci/lib/artifacts.jenkinsfile b/.ci/lib/artifacts.jenkinsfile deleted file mode 100644 index 0d57994f..00000000 --- a/.ci/lib/artifacts.jenkinsfile +++ /dev/null @@ -1,4 +0,0 @@ -always { - junit 'Pal/regression/pal-regression.xml' - junit 'LibOS/shim/test/regression/libos-regression.xml' -} diff --git a/.ci/lib/stage-test-all-nosgx.jenkinsfile b/.ci/lib/stage-test-direct.jenkinsfile similarity index 90% rename from .ci/lib/stage-test-all-nosgx.jenkinsfile rename to .ci/lib/stage-test-direct.jenkinsfile index 7a154c53..1e475894 100644 --- a/.ci/lib/stage-test-all-nosgx.jenkinsfile +++ b/.ci/lib/stage-test-direct.jenkinsfile @@ -1,19 +1,4 @@ -stage('test') { - sh ''' - cd Pal/regression - make ${MAKEOPTS} all - make regression - ''' - sh ''' - cd LibOS/shim/test/regression - make ${MAKEOPTS} all - make regression - ''' - sh ''' - cd LibOS/shim/test/fs - make ${MAKEOPTS} all - make test - ''' +stage('test-direct') { try { sh ''' cd LibOS/shim/test/ltp diff --git a/.ci/lib/stage-test-apps-sgx.jenkinsfile b/.ci/lib/stage-test-sgx.jenkinsfile similarity index 99% rename from .ci/lib/stage-test-apps-sgx.jenkinsfile rename to .ci/lib/stage-test-sgx.jenkinsfile index 3478bdaa..b67ff236 100644 --- a/.ci/lib/stage-test-apps-sgx.jenkinsfile +++ b/.ci/lib/stage-test-sgx.jenkinsfile @@ -1,4 +1,4 @@ -stage('test') { +stage('test-sgx') { timeout(time: 5, unit: 'MINUTES') { sh ''' cd Examples/python-simple diff --git a/.ci/lib/stage-test-simple-sgx.jenkinsfile b/.ci/lib/stage-test-simple-sgx.jenkinsfile deleted file mode 100644 index b4e5ca88..00000000 --- a/.ci/lib/stage-test-simple-sgx.jenkinsfile +++ /dev/null @@ -1,30 +0,0 @@ -stage('test') { - sh ''' - make ${MAKEOPTS} test - make ${MAKEOPTS} sgx-tokens - make ${MAKEOPTS} -C Pal/src/host/Linux-SGX/tools install \ - PREFIX=../../../../../../LibOS/shim/test/fs - ''' - timeout(time: 15, unit: 'MINUTES') { - sh ''' - cd Pal/regression - make -j8 SGX=1 all sgx-tokens - make SGX=1 KEEP_LOG=1 regression - ''' - } - timeout(time: 15, unit: 'MINUTES') { - sh ''' - cd LibOS/shim/test/regression - make clean SGX=1 # re-build with ra_client_spid set - make -j8 SGX=1 RA_CLIENT_SPID=${ra_client_spid} all sgx-tokens - make SGX=1 regression - ''' - } - timeout(time: 5, unit: 'MINUTES') { - sh ''' - cd LibOS/shim/test/fs - make -j8 SGX=1 all sgx-tokens - make SGX=1 test - ''' - } -} diff --git a/.ci/lib/stage-test.jenkinsfile b/.ci/lib/stage-test.jenkinsfile new file mode 100644 index 00000000..c00c7afd --- /dev/null +++ b/.ci/lib/stage-test.jenkinsfile @@ -0,0 +1,56 @@ +stage('test') { + sh ''' + make ${MAKEOPTS} test + if test -n "$SGX" + then + make ${MAKEOPTS} sgx-tokens + make ${MAKEOPTS} -C Pal/src/host/Linux-SGX/tools install \ + PREFIX=../../../../../../LibOS/shim/test/fs + fi + ''' + + timeout(time: 15, unit: 'MINUTES') { + try { + sh ''' + cd Pal/regression + make ${MAKEOPTS} all + if test -n "$SGX" + then + make ${MAKEOPTS} sgx-tokens + fi + make regression + ''' + } finally { + junit 'Pal/regression/pal-regression.xml' + } + } + + timeout(time: 15, unit: 'MINUTES') { + try { + sh ''' + cd LibOS/shim/test/regression + make clean # re-build with ra_client_spid set + make ${MAKEOPTS} RA_CLIENT_SPID=${ra_client_spid} all + if test -n "$SGX" + then + make ${MAKEOPTS} RA_CLIENT_SPID=${ra_client_spid} sgx-tokens + fi + make regression + ''' + } finally { + junit 'LibOS/shim/test/regression/libos-regression.xml' + } + } + + timeout(time: 5, unit: 'MINUTES') { + sh ''' + cd LibOS/shim/test/fs + make ${MAKEOPTS} all + if test -n "$SGX" + then + make ${MAKEOPTS} sgx-tokens + fi + make test + ''' + } +} diff --git a/.ci/linux-direct-ubuntu16.04-gcc-debug.jenkinsfile b/.ci/linux-direct-ubuntu16.04-gcc-debug.jenkinsfile index 937d6624..23d3d4f9 100644 --- a/.ci/linux-direct-ubuntu16.04-gcc-debug.jenkinsfile +++ b/.ci/linux-direct-ubuntu16.04-gcc-debug.jenkinsfile @@ -12,11 +12,8 @@ node('nonsgx_slave') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-nosgx.jenkinsfile' - try { - load '.ci/lib/stage-test-all-nosgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test.jenkinsfile' + load '.ci/lib/stage-test-direct.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-direct-ubuntu16.04-gcc-release.jenkinsfile b/.ci/linux-direct-ubuntu16.04-gcc-release.jenkinsfile index 10b511e6..4a719698 100644 --- a/.ci/linux-direct-ubuntu16.04-gcc-release.jenkinsfile +++ b/.ci/linux-direct-ubuntu16.04-gcc-release.jenkinsfile @@ -12,11 +12,8 @@ node('nonsgx_slave') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-nosgx.jenkinsfile' - try { - load '.ci/lib/stage-test-all-nosgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test.jenkinsfile' + load '.ci/lib/stage-test-direct.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-direct-ubuntu18.04-gcc-debug.jenkinsfile b/.ci/linux-direct-ubuntu18.04-gcc-debug.jenkinsfile index e4ccadb0..4b800221 100644 --- a/.ci/linux-direct-ubuntu18.04-gcc-debug.jenkinsfile +++ b/.ci/linux-direct-ubuntu18.04-gcc-debug.jenkinsfile @@ -12,11 +12,8 @@ node('nonsgx_slave') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-nosgx.jenkinsfile' - try { - load '.ci/lib/stage-test-all-nosgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test.jenkinsfile' + load '.ci/lib/stage-test-direct.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-direct-ubuntu18.04-gcc-release.jenkinsfile b/.ci/linux-direct-ubuntu18.04-gcc-release.jenkinsfile index b095186e..820c35eb 100644 --- a/.ci/linux-direct-ubuntu18.04-gcc-release.jenkinsfile +++ b/.ci/linux-direct-ubuntu18.04-gcc-release.jenkinsfile @@ -12,11 +12,8 @@ node('nonsgx_slave') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-nosgx.jenkinsfile' - try { - load '.ci/lib/stage-test-all-nosgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test.jenkinsfile' + load '.ci/lib/stage-test-direct.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-sgx-ubuntu16.04-gcc-release-apps.jenkinsfile b/.ci/linux-sgx-ubuntu16.04-gcc-release-apps.jenkinsfile index 94c11c97..b6be6f91 100644 --- a/.ci/linux-sgx-ubuntu16.04-gcc-release-apps.jenkinsfile +++ b/.ci/linux-sgx-ubuntu16.04-gcc-release-apps.jenkinsfile @@ -13,11 +13,7 @@ node('sgx_slave_2.6') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-sgx.jenkinsfile' - try { - load '.ci/lib/stage-test-apps-sgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test-sgx.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-sgx-ubuntu16.04-gcc-release.jenkinsfile b/.ci/linux-sgx-ubuntu16.04-gcc-release.jenkinsfile index 416b262c..772c9c96 100644 --- a/.ci/linux-sgx-ubuntu16.04-gcc-release.jenkinsfile +++ b/.ci/linux-sgx-ubuntu16.04-gcc-release.jenkinsfile @@ -13,11 +13,7 @@ node('sgx_slave_2.6') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-sgx.jenkinsfile' - try { - load '.ci/lib/stage-test-simple-sgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-sgx-ubuntu18.04-gcc-release-apps.jenkinsfile b/.ci/linux-sgx-ubuntu18.04-gcc-release-apps.jenkinsfile index d340c797..de50d1aa 100644 --- a/.ci/linux-sgx-ubuntu18.04-gcc-release-apps.jenkinsfile +++ b/.ci/linux-sgx-ubuntu18.04-gcc-release-apps.jenkinsfile @@ -13,11 +13,7 @@ node('sgx_slave_2.6') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-sgx.jenkinsfile' - try { - load '.ci/lib/stage-test-apps-sgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test-sgx.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } } diff --git a/.ci/linux-sgx-ubuntu18.04-gcc-release.jenkinsfile b/.ci/linux-sgx-ubuntu18.04-gcc-release.jenkinsfile index b5814132..92540122 100644 --- a/.ci/linux-sgx-ubuntu18.04-gcc-release.jenkinsfile +++ b/.ci/linux-sgx-ubuntu18.04-gcc-release.jenkinsfile @@ -13,11 +13,7 @@ node('sgx_slave_2.6') { load '.ci/lib/stage-lint.jenkinsfile' load '.ci/lib/stage-clean-check-prepare.jenkinsfile' load '.ci/lib/stage-build-sgx.jenkinsfile' - try { - load '.ci/lib/stage-test-simple-sgx.jenkinsfile' - } finally { - load '.ci/lib/artifacts.jenkinsfile' - } + load '.ci/lib/stage-test.jenkinsfile' load '.ci/lib/stage-clean-check.jenkinsfile' } }