gitlab-ci: add commandline options to the meson-build.sh script
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 31 Aug 2022 05:51:20 +0000 (15:51 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 31 Aug 2022 06:01:26 +0000 (16:01 +1000)
The various --skip-build, --skip-test and --skip-setup skip the
respective step, the --run-test argument runs the test even where
MESON_TEST_ARGS is nil.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
.gitlab-ci/meson-build.sh

index bda825b..4d5330d 100755 (executable)
@@ -5,6 +5,34 @@ if [[ -f .meson_environment ]]; then
        . .meson_environment
 fi
 
+# If test args are set, we assume we want to run the tests
+MESON_RUN_TEST="$MESON_TEST_ARGS"
+
+while [[ $# -gt 0 ]]; do
+       case $1 in
+               --skip-setup)
+                       shift
+                       MESON_SKIP_SETUP="1"
+                       ;;
+               --skip-build)
+                       shift
+                       MESON_SKIP_BUILD="1"
+                       ;;
+               --skip-test)
+                       shift
+                       MESON_RUN_TEST=""
+                       ;;
+               --run-test)
+                       shift
+                       MESON_RUN_TEST="1"
+                       ;;
+               *)
+                       echo "Unknow commandline argument $1"
+                       exit 1
+                       ;;
+       esac
+done
+
 if [[ -z "$MESON_BUILDDIR" ]]; then
        echo "\$MESON_BUILDDIR undefined."
        exit 1
@@ -35,13 +63,17 @@ echo "*************************************************"
 
 set -e
 
-rm -rf "$MESON_BUILDDIR"
-meson setup "$MESON_BUILDDIR" $MESON_ARGS
+if [[ -z "$MESON_SKIP_SETUP" ]]; then
+       rm -rf "$MESON_BUILDDIR"
+       meson setup "$MESON_BUILDDIR" $MESON_ARGS
+fi
 meson configure "$MESON_BUILDDIR"
-ninja -C "$MESON_BUILDDIR" $NINJA_ARGS
 
-if [[ -z "$MESON_TEST_ARGS" ]]; then
-    exit 0
+if [[ -z "$MESON_SKIP_BUILD" ]]; then
+       ninja -C "$MESON_BUILDDIR" $NINJA_ARGS
+fi
+
+if [[ -n "$MESON_RUN_TEST" ]]; then
+       meson test -C "$MESON_BUILDDIR" $MESON_TEST_ARGS --print-errorlogs
 fi
 
-meson test -C "$MESON_BUILDDIR" $MESON_TEST_ARGS --print-errorlogs