如何重构此 Makefile 以不使用假 .out 输出?

如何重构此 Makefile 以不使用假 .out 输出?

tests/FILENAME-test.sh对每个测试都进行了测试,我想在 docker 容器内运行脚本。

我怎样才能重构这个Makefile,使其不像TEST_OUTPUTS我一样使用?

另外,如何使每个docker run命令并行运行?

.PHONY: test image

TESTS=$(wildcard tests/*-test.sh)
TEST_OUTPUTS=$(patsubst %.sh,%.out,$(TESTS))

%.out: %.sh image
    @sudo docker run -t box-test /bin/bash "-c" "./$^"

test: $(TEST_OUTPUTS)
    @echo

image:
    @sudo docker build -q -t box-test .

答案1

这里是:

.PHONY: test image

TESTS=$(wildcard tests/*-test.sh)

test: $(TESTS)

$(TESTS): image
        @sudo docker run -t box-test /bin/bash "-c" "./$@"

image:
        @sudo docker build -q -t box-test .

对于docker run并行运行的命令,只需使用make -j test(您可以使用 指定最大并发运行数-j)。

相关内容