|
| 1 | +SCRIPTS_DIR := buildroot/share/scripts |
| 2 | +CONTAINER_RT_BIN := docker |
| 3 | +CONTAINER_RT_OPTS := --rm -v $(PWD):/code -v platformio-cache:/root/.platformio |
| 4 | +CONTAINER_IMAGE := marlin-dev |
| 5 | + |
1 | 6 | help: |
2 | 7 | @echo "Tasks for local development:" |
3 | 8 | @echo "* tests-single-ci: Run a single test from inside the CI" |
4 | 9 | @echo "* tests-single-local: Run a single test locally" |
5 | | - @echo "* tests-single-local-docker: Run a single test locally, using docker-compose" |
| 10 | + @echo "* tests-single-local-docker: Run a single test locally, using docker" |
6 | 11 | @echo "* tests-all-local: Run all tests locally" |
7 | | - @echo "* tests-all-local-docker: Run all tests locally, using docker-compose" |
8 | | - @echo "* setup-local-docker: Setup local docker-compose" |
| 12 | + @echo "* tests-all-local-docker: Run all tests locally, using docker" |
| 13 | + @echo "* setup-local-docker: Build the local docker image" |
9 | 14 | @echo "" |
10 | 15 | @echo "Options for testing:" |
11 | 16 | @echo " TEST_TARGET Set when running tests-single-*, to select the" |
@@ -34,19 +39,21 @@ tests-single-local: |
34 | 39 |
|
35 | 40 | tests-single-local-docker: |
36 | 41 | @if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local-docker" ; return 1; fi |
37 | | - docker-compose run --rm marlin $(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET) VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD) ONLY_TEST="$(ONLY_TEST)" |
| 42 | + @if ! $(CONTAINER_RT_BIN) images -q $(CONTAINER_IMAGE) > /dev/null ; then $(MAKE) setup-local-docker ; fi |
| 43 | + $(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)" |
38 | 44 | .PHONY: tests-single-local-docker |
39 | 45 |
|
40 | 46 | tests-all-local: |
41 | 47 | export PATH="./buildroot/bin/:./buildroot/tests/:${PATH}" \ |
42 | 48 | && export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \ |
43 | | - && for TEST_TARGET in $$(./get_test_targets.py) ; do echo "Running tests for $$TEST_TARGET" ; run_tests . $$TEST_TARGET ; done |
| 49 | + && for TEST_TARGET in $$($(SCRIPTS_DIR)/get_test_targets.py) ; do echo "Running tests for $$TEST_TARGET" ; run_tests . $$TEST_TARGET ; done |
44 | 50 | .PHONY: tests-all-local |
45 | 51 |
|
46 | 52 | tests-all-local-docker: |
47 | | - docker-compose run --rm marlin $(MAKE) tests-all-local VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD) |
| 53 | + @if ! $(CONTAINER_RT_BIN) images -q $(CONTAINER_IMAGE) > /dev/null ; then $(MAKE) setup-local-docker ; fi |
| 54 | + $(CONTAINER_RT_BIN) run $(CONTAINER_RT_OPTS) $(CONTAINER_IMAGE) $(MAKE) tests-all-local VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD) |
48 | 55 | .PHONY: tests-all-local-docker |
49 | 56 |
|
50 | 57 | setup-local-docker: |
51 | | - docker-compose build |
| 58 | + $(CONTAINER_RT_BIN) build -t $(CONTAINER_IMAGE) -f docker/Dockerfile . |
52 | 59 | .PHONY: setup-local-docker |
0 commit comments