2023-03-29 04:23:27 +00:00
SCRIPTS_DIR := buildroot/share/scripts
CONTAINER_RT_BIN := docker
CONTAINER_RT_OPTS := --rm -v $( PWD) :/code -v platformio-cache:/root/.platformio
CONTAINER_IMAGE := marlin-dev
2020-11-18 02:04:28 +00:00
help :
@echo "Tasks for local development:"
2023-12-16 00:47:34 +00:00
@echo "make marlin : Build marlin for the configured board"
@echo "make format-pins : Reformat all pins files"
@echo "make tests-single-ci : Run a single test from inside the CI"
@echo "make tests-single-local : Run a single test locally"
@echo "make tests-single-local-docker : Run a single test locally, using docker"
@echo "make tests-all-local : Run all tests locally"
@echo "make tests-all-local-docker : Run all tests locally, using docker"
@echo "make setup-local-docker : Build the local docker image"
2020-11-18 02:04:28 +00:00
@echo ""
@echo "Options for testing:"
@echo " TEST_TARGET Set when running tests-single-*, to select the"
@echo " test. If you set it to ALL it will run all "
@echo " tests, but some of them are broken: use "
@echo " tests-all-* instead to run only the ones that "
@echo " run on GitHub CI"
@echo " ONLY_TEST Limit tests to only those that contain this, or"
@echo " the index of the test (1-based)"
@echo " VERBOSE_PLATFORMIO If you want the full PIO output, set any value"
@echo " GIT_RESET_HARD Used by CI: reset all local changes. WARNING:"
@echo " THIS WILL UNDO ANY CHANGES YOU'VE MADE!"
2023-12-16 00:47:34 +00:00
marlin :
./buildroot/bin/mftest -a
.PHONY : marlin
2020-11-18 02:04:28 +00:00
tests-single-ci :
export GIT_RESET_HARD = true
2023-12-15 23:37:36 +00:00
$( MAKE) tests-single-local TEST_TARGET = $( TEST_TARGET) PLATFORMIO_BUILD_FLAGS = -DGITHUB_ACTION
2020-11-18 02:04:28 +00:00
tests-single-local :
@if ! test -n " $( TEST_TARGET) " ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local" ; return 1; fi
2022-10-14 23:59:31 +00:00
export PATH = " ./buildroot/bin/:./buildroot/tests/: ${ PATH } " \
2020-11-18 02:04:28 +00:00
&& export VERBOSE_PLATFORMIO = $( VERBOSE_PLATFORMIO) \
&& run_tests . $( TEST_TARGET) " $( ONLY_TEST) "
tests-single-local-docker :
@if ! test -n " $( TEST_TARGET) " ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local-docker" ; return 1; fi
2023-03-29 04:23:27 +00:00
@if ! $( CONTAINER_RT_BIN) images -q $( CONTAINER_IMAGE) > /dev/null ; then $( MAKE) setup-local-docker ; fi
$( CONTAINER_RT_BIN) run $( CONTAINER_RT_OPTS) $( CONTAINER_IMAGE) $( MAKE) tests-single-local TEST_TARGET = $( TEST_TARGET) VERBOSE_PLATFORMIO = $( VERBOSE_PLATFORMIO) GIT_RESET_HARD = $( GIT_RESET_HARD) ONLY_TEST = " $( ONLY_TEST) "
2020-11-18 02:04:28 +00:00
tests-all-local :
2022-10-14 23:59:31 +00:00
export PATH = " ./buildroot/bin/:./buildroot/tests/: ${ PATH } " \
2020-11-18 02:04:28 +00:00
&& export VERBOSE_PLATFORMIO = $( VERBOSE_PLATFORMIO) \
2023-03-29 04:23:27 +00:00
&& for TEST_TARGET in $$ ( $( SCRIPTS_DIR) /get_test_targets.py) ; do echo " Running tests for $$ TEST_TARGET " ; run_tests . $$ TEST_TARGET ; done
2020-11-18 02:04:28 +00:00
tests-all-local-docker :
2023-03-29 04:23:27 +00:00
@if ! $( CONTAINER_RT_BIN) images -q $( CONTAINER_IMAGE) > /dev/null ; then $( MAKE) setup-local-docker ; fi
$( CONTAINER_RT_BIN) run $( CONTAINER_RT_OPTS) $( CONTAINER_IMAGE) $( MAKE) tests-all-local VERBOSE_PLATFORMIO = $( VERBOSE_PLATFORMIO) GIT_RESET_HARD = $( GIT_RESET_HARD)
2020-11-18 02:04:28 +00:00
setup-local-docker :
2023-03-29 04:23:27 +00:00
$( CONTAINER_RT_BIN) build -t $( CONTAINER_IMAGE) -f docker/Dockerfile .
2023-12-15 23:37:36 +00:00
PINS := $( shell find Marlin/src/pins -mindepth 2 -name '*.h' )
$(PINS) : %:
2023-12-16 00:47:34 +00:00
@echo " Formatting $@ " && node $( SCRIPTS_DIR) /pinsformat.js $@
2023-12-15 23:37:36 +00:00
format-pins : $( PINS )