diff --git a/CMakeLists.txt b/CMakeLists.txt index bb3d48b83..67d07501f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,7 @@ if(FSFW_BUILD_UNITTESTS) FetchContent_Declare( Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v3.0.0-preview3 + GIT_TAG v3.0.0-preview4 ) FetchContent_MakeAvailable(Catch2) diff --git a/automation/Dockerfile b/automation/Dockerfile index 93a4fe7db..52e5acfb4 100644 --- a/automation/Dockerfile +++ b/automation/Dockerfile @@ -6,3 +6,9 @@ RUN apt-get --yes upgrade #tzdata is a dependency, won't install otherwise ARG DEBIAN_FRONTEND=noninteractive RUN apt-get --yes install gcc g++ cmake make lcov git valgrind nano + +RUN git clone https://github.com/catchorg/Catch2.git && \ + cd Catch2 && \ + git checkout v3.0.0-preview4 && \ + cmake -Bbuild -H. -DBUILD_TESTING=OFF && \ + cmake --build build/ --target install diff --git a/automation/Jenkinsfile b/automation/Jenkinsfile index d4a8e2ab8..dae2da2cb 100644 --- a/automation/Jenkinsfile +++ b/automation/Jenkinsfile @@ -1,28 +1,23 @@ pipeline { - agent any environment { - BUILDDIR = 'build-unittests' + BUILDDIR = 'build-tests' + } + agent { + dockerfile { + dir 'automation' + //force docker to redownload base image and rebuild all steps instead of caching them + //this way, we always get an up to date docker image one each build + additionalBuildArgs '--no-cache --pull' + reuseNode true + } } stages { - stage('Create Docker') { - agent { - dockerfile { - dir 'automation' - additionalBuildArgs '--no-cache' - reuseNode true - } - } + stage('Clean') { steps { sh 'rm -rf $BUILDDIR' } } stage('Configure') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'cmake -DFSFW_OSAL=host -DFSFW_BUILD_UNITTESTS=ON ..' @@ -30,12 +25,6 @@ pipeline { } } stage('Build') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'cmake --build . -j' @@ -43,12 +32,6 @@ pipeline { } } stage('Unittests') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'cmake --build . -- fsfw-tests_coverage -j' @@ -56,12 +39,6 @@ pipeline { } } stage('Valgrind') { - agent { - dockerfile { - dir 'automation' - reuseNode true - } - } steps { dir(BUILDDIR) { sh 'valgrind --leak-check=full --error-exitcode=1 ./fsfw-tests'