diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2019-11-28 11:35:54 +1000 |
---|---|---|
committer | Benjamin Tissoires <benjamin.tissoires@gmail.com> | 2019-11-28 14:35:55 +0100 |
commit | 142399f8a39c2f679286fae93ee03be8d7c75e34 (patch) | |
tree | 771b6732ac4b6ae09923f5569d4da4af9fc93230 | |
parent | 3f051ca9d8b30e80c5783b558d4f575f68d522e1 (diff) | |
download | libinput-142399f8a39c2f679286fae93ee03be8d7c75e34.tar.gz |
gitlab CI: move the build instructions into a bash file
Extending/debugging scripts in the gitlab CI directly is a pain, the
turnaround cycle is terrible. Let's move this into a shellscript that we can
just call directly.
Bonus side-effect: if we wanted to extend the script: set somewhere, this is
now much easier to override.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | .gitlab-ci.yml | 21 | ||||
-rwxr-xr-x | .gitlab-ci/meson-build.sh | 52 |
2 files changed, 54 insertions, 19 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 899d5547..faa93ade 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -122,24 +122,6 @@ variables: reports: junit: $MESON_BUILDDIR/junit-*.xml -# The default build instructions -.default_build: - script: - - rm -rf "$MESON_BUILDDIR" - - meson "$MESON_BUILDDIR" $MESON_ARGS - - meson configure "$MESON_BUILDDIR" - - ninja -C "$MESON_BUILDDIR" $NINJA_ARGS - - if test x"$MESON_TEST_ARGS" != "x"; then - echo "Running meson test -C \"$MESON_BUILDDIR\" $MESON_TEST_ARGS"; - meson test -C "$MESON_BUILDDIR" $MESON_TEST_ARGS || touch .failed; - ./.gitlab-ci/meson-junit-report.py - --project-name=libinput - --job-id="$CI_JOB_ID" - --output="$MESON_BUILDDIR/junit-$CI_JOB_NAME-report.xml" - "$MESON_BUILDDIR/meson-logs/testlog.json"; - test -f .failed && exit 1; - fi - ################################################################# # # # prep stage # @@ -466,8 +448,9 @@ freebsd:11.2@container-clean: extends: - .policy - .default_artifacts - - .default_build stage: build + script: + - .gitlab-ci/meson-build.sh dependencies: [] # diff --git a/.gitlab-ci/meson-build.sh b/.gitlab-ci/meson-build.sh new file mode 100755 index 00000000..1b471aae --- /dev/null +++ b/.gitlab-ci/meson-build.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +if [[ -z "$MESON_BUILDDIR" ]]; then + echo "\$MESON_BUILDDIR undefined." + exit 1 +fi + +# emulate a few gitlab variables to make it easier to +# run and debug locally. +if [[ -z "$CI_JOB_ID" ]] || [[ -z "$CI_JOB_NAME" ]]; then + echo "Missing \$CI_JOB_ID or \$CI_JOB_NAME". + CI_JOB_ID=$(date +%s) + CI_JOB_NAME='libinput-job-local' + echo "Simulating gitlab environment: " + echo " CI_JOB_ID=$CI_JOB_ID" + echo " CI_JOB_NAME=$CI_JOB_NAME" +fi + + +echo "*************************************************" +echo "builddir: $MESON_BUILDDIR" +echo "meson args: $MESON_ARGS" +echo "ninja args: $NINJA_ARGS" +echo "meson test args: $MESON_TEST_ARGS" +echo "*************************************************" + +set -e + +rm -rf "$MESON_BUILDDIR" +meson "$MESON_BUILDDIR" $MESON_ARGS +meson configure "$MESON_BUILDDIR" +ninja -C "$MESON_BUILDDIR" $NINJA_ARGS + +if [[ -z "$MESON_TEST_ARGS" ]]; then + exit 0 +fi + +# we still want to generate the reports, even if meson test fails +set +e +meson test -C "$MESON_BUILDDIR" $MESON_TEST_ARGS +exit_code=$? +set -e + +# We need the glob for the testlog so that it picks up those suffixed by a +# suite (e.g. testlog-valgrind.json) +./.gitlab-ci/meson-junit-report.py \ + --project-name=libinput \ + --job-id="$CI_JOB_ID" \ + --output="$MESON_BUILDDIR/junit-$CI_JOB_NAME-report.xml" \ + "$MESON_BUILDDIR"/meson-logs/testlog*.json; \ + +exit $exit_code |