about summary refs log tree commit diff
path: root/tools/check-gitlab-ci.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/check-gitlab-ci.sh')
-rwxr-xr-xtools/check-gitlab-ci.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/check-gitlab-ci.sh b/tools/check-gitlab-ci.sh
new file mode 100755
index 00000000..8ad0fbb2
--- /dev/null
+++ b/tools/check-gitlab-ci.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+set -e
+
+if [ "$NMTST_SKIP_CHECK_GITLAB_CI" = 1 ]; then
+    exit 0
+fi
+
+if [ $# -eq 0 ] ; then
+    BASEDIR="$(dirname "$(readlink -f "$0")")/.."
+elif [ $# -eq 1 ] ; then
+    BASEDIR="$1"
+else
+    echo "invalid arguments"
+    exit 1
+fi
+
+cd "$BASEDIR"
+
+if ! [ -f ./.gitlab-ci.yml ] ; then
+    # we have no gitlab-ci. Probably this is not a git-checkout
+    # but a dist'ed source-tree. Nothing to check.
+    exit 0
+fi
+
+if ! command -v ci-fairy &> /dev/null ; then
+    # ci-fairy not available. Cannot check.
+    exit 0
+fi
+
+
+if [ "$NM_TEST_REGENERATE" == 1 ] ; then
+    ci-fairy generate-template
+    exit 0
+fi
+
+diff "./.gitlab-ci.yml" <(ci-fairy generate-template -o /dev/stdout)