Como posso refatorar este Makefile para não usar saídas falsas .out?

0

Eu tenho testes em tests/FILENAME-test.sh e para cada um eu quero executar o script dentro de um contêiner docker.

Como posso refatorar este Makefile para não usar TEST_OUTPUTS como eu tenho?

Além disso, como posso fazer com que cada comando docker run seja executado em paralelo?

.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 .
    
por AndrewVos 12.09.2017 / 01:14

1 resposta

1

Aqui está:

.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 .

E para que os comandos docker run sejam executados em paralelo, use apenas make -j test (você pode especificar um número máximo de execuções simultâneas com -j ).

    
por 12.09.2017 / 01:38

Tags