From c7448f41d87f02c7169bc7bb30528aa29df7c686 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Thu, 13 Feb 2020 10:39:25 +0100 Subject: [PATCH] [ci] Added xunit to junit conversion for ctest results. --- .gitlab-ci.yml | 3 ++- scripts/ci/jobs/build.yml | 6 +++--- scripts/ci/jobs/build_image.yml | 21 +++++++++++++++++---- scripts/ci/jobs/checks.yml | 25 ++++++++++++++++++++++--- scripts/docker/saxon/Dockerfile | 8 ++++++++ scripts/docker/saxon/README.md | 1 + scripts/docker/saxon/entrypoint.sh | 3 +++ 7 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 scripts/docker/saxon/Dockerfile create mode 100644 scripts/docker/saxon/README.md create mode 100644 scripts/docker/saxon/entrypoint.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 73962f4baec..89455251463 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,8 @@ stages: - package variables: - CONTAINER_GCC_IMAGE: $CI_REGISTRY_IMAGE:gcc-$CI_COMMIT_REF_SLUG + CONTAINER_GCC_IMAGE: $CI_REGISTRY_IMAGE/gcc:$CI_COMMIT_REF_SLUG + XUNIT_TO_JUNIT_IMAGE: $CI_REGISTRY_IMAGE/xunit-to-junit include: - local: '/scripts/ci/extends/container-maker-setup.yml' diff --git a/scripts/ci/jobs/build.yml b/scripts/ci/jobs/build.yml index 4a39289e101..6d925198b10 100644 --- a/scripts/ci/jobs/build.yml +++ b/scripts/ci/jobs/build.yml @@ -19,15 +19,15 @@ build: - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_BUILD_PROCESSES=GroundwaterFlow - cmake --build . > >(tee make.output) - cmake --build . --target tests - - cmake --build . --target ctest -j 8 + - cmake --build . --target ctest + - cp Testing/**/Test.xml Tests/ctest.xml artifacts: paths: - - build/Testing/**/*.xml + - build/Tests/ctest.xml - build/Tests/testrunner.xml - build/make.output expire_in: 1 week reports: junit: - build/Tests/testrunner.xml - - build/Testing/**/*.xml diff --git a/scripts/ci/jobs/build_image.yml b/scripts/ci/jobs/build_image.yml index 3f63ea0212a..faa39250c5a 100644 --- a/scripts/ci/jobs/build_image.yml +++ b/scripts/ci/jobs/build_image.yml @@ -1,8 +1,8 @@ -build_image: +build gcc image: stage: .pre - # only: - # changes: - # - ThirdParty/container-maker + only: + changes: + - ThirdParty/container-maker tags: - docker-shell extends: .container-maker-setup @@ -12,3 +12,16 @@ build_image: - python ThirdParty/container-maker/ogscm/cli.py --build --gitlab --ogs off --pm system --cvode --cppcheck --docs --gcovr --tag $CONTAINER_GCC_IMAGE --upload + +build xunit-to-junit image: + stage: .pre + only: + changes: + - scripts/docker/saxon/**/* + tags: + - docker-shell + script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + - docker pull $XUNIT_TO_JUNIT_IMAGE:latest || true + - docker build --cache-from $XUNIT_TO_JUNIT_IMAGE:latest -t $XUNIT_TO_JUNIT_IMAGE:latest -f scripts/docker/saxon/Dockerfile scripts/docker/saxon + - docker push $XUNIT_TO_JUNIT_IMAGE:latest diff --git a/scripts/ci/jobs/checks.yml b/scripts/ci/jobs/checks.yml index a33771b344c..85fe1c517da 100644 --- a/scripts/ci/jobs/checks.yml +++ b/scripts/ci/jobs/checks.yml @@ -2,9 +2,28 @@ compiler warnings: stage: checks variables: GIT_STRATEGY: none - script: - - cd build - - "if [[ $(cat make.output | grep warning -i) ]]; then echo 'There were compiler warnings:'; cat make.output | grep warning -i; exit 1; fi" allow_failure: true dependencies: - build + script: + - cd build + - "if [[ $(cat make.output | grep warning -i) ]]; then echo 'There were compiler warnings:'; cat make.output | grep warning -i; exit 1; fi" + + +ctest results: + stage: checks + variables: + GIT_STRATEGY: none + tags: + - singularity + dependencies: + - build + script: + - singularity run docker://$XUNIT_TO_JUNIT_IMAGE -s:./build/Tests/ctest.xml > build/ctest-junit.xml + artifacts: + paths: + - build/ctest-junit.xml + expire_in: 1 week + reports: + junit: + - build/ctest-junit.xml diff --git a/scripts/docker/saxon/Dockerfile b/scripts/docker/saxon/Dockerfile new file mode 100644 index 00000000000..b2604370a15 --- /dev/null +++ b/scripts/docker/saxon/Dockerfile @@ -0,0 +1,8 @@ +FROM openjdk:8-jre + +WORKDIR /usr/src/saxon +RUN curl -L -O https://repo1.maven.org/maven2/net/sf/saxon/Saxon-HE/9.9.1-5/Saxon-HE-9.9.1-5.jar +COPY entrypoint.sh entrypoint.sh +ENTRYPOINT ["/bin/sh", "/usr/src/saxon/entrypoint.sh"] + +RUN curl -L -O https://raw.githubusercontent.com/rpavlik/jenkins-ctest-plugin/master/ctest-to-junit.xsl diff --git a/scripts/docker/saxon/README.md b/scripts/docker/saxon/README.md new file mode 100644 index 00000000000..09d61126efa --- /dev/null +++ b/scripts/docker/saxon/README.md @@ -0,0 +1 @@ +Modified from https://github.com/AtomGraph/saxon-docker diff --git a/scripts/docker/saxon/entrypoint.sh b/scripts/docker/saxon/entrypoint.sh new file mode 100644 index 00000000000..5a9c239720a --- /dev/null +++ b/scripts/docker/saxon/entrypoint.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +java $JAVA_OPTS -jar /usr/src/saxon/Saxon-HE-9.9.1-5.jar -xsl:/usr/src/saxon/ctest-to-junit.xsl "$@" -- GitLab