aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/ci-build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/ci-build.sh')
-rwxr-xr-xscripts/ci-build.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/ci-build.sh b/scripts/ci-build.sh
new file mode 100755
index 00000000..e5f97754
--- /dev/null
+++ b/scripts/ci-build.sh
@@ -0,0 +1,67 @@
+#!/bin/bash
+# Test script for continuous integration.
+
+# Stop script early on any error; check variables
+set -eu
+
+# Paths to tools installed by ci-install.sh
+MAIN_DIR=${PWD}
+BUILD_DIR=${PWD}/ci_build
+export PATH=${BUILD_DIR}/pru-gcc/bin:${PATH}
+PYTHON=${BUILD_DIR}/python-env/bin/python
+
+
+######################################################################
+# Section grouping output message helpers
+######################################################################
+
+start_test()
+{
+ echo "::group::=============== $1 $2"
+ set -x
+}
+
+finish_test()
+{
+ set +x
+ echo "=============== Finished $2"
+ echo "::endgroup::"
+}
+
+
+######################################################################
+# Check for whitespace errors
+######################################################################
+
+start_test check_whitespace "Check whitespace"
+./scripts/check_whitespace.sh
+finish_test check_whitespace "Check whitespace"
+
+
+######################################################################
+# Run compile tests for several different MCU types
+######################################################################
+
+DICTDIR=${BUILD_DIR}/dict
+mkdir -p ${DICTDIR}
+
+for TARGET in test/configs/*.config ; do
+ start_test mcu_compile "$TARGET"
+ make clean
+ make distclean
+ unset CC
+ cp ${TARGET} .config
+ make olddefconfig
+ make V=1
+ finish_test mcu_compile "$TARGET"
+ cp out/klipper.dict ${DICTDIR}/$(basename ${TARGET} .config).dict
+done
+
+
+######################################################################
+# Verify klippy host software
+######################################################################
+
+start_test klippy "Test invoke klippy"
+$PYTHON scripts/test_klippy.py -d ${DICTDIR} test/klippy/*.test
+finish_test klippy "Test invoke klippy"