diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..054e75b --- /dev/null +++ b/Makefile @@ -0,0 +1,50 @@ +MAKEFLAGS += --no-builtin-rules --no-builtin-variables --warn-undefined-variables +unexport MAKEFLAGS +.DEFAULT_GOAL := all +.DELETE_ON_ERROR: +.SUFFIXES: +SHELL := bash +.SHELLFLAGS := -eu -o pipefail -c + +escape = $(subst ','\'',$(1)) + +define noexpand +ifeq ($$(origin $(1)),environment) + $(1) := $$(value $(1)) +endif +ifeq ($$(origin $(1)),environment override) + $(1) := $$(value $(1)) +endif +ifeq ($$(origin $(1)),command line) + override $(1) := $$(value $(1)) +endif +endef + +.PHONY: DO +DO: + +.PHONY: all +all: test + +.PHONY: test +test: test/local + +.PHONY: test/all +test/all: test/local test/docker + +.PHONY: test/local +test/local: + ./test/unit/test.sh + +test/docker/%: DO + cd test && \ + DISTRO='$*' docker-compose build --pull && \ + docker-compose run --rm test && \ + docker-compose down -v + +# Xenial has bash 4.3, which doesn't support inherit_errexit, which is a good +# thing to test against. +# +# Keep the list repositories synced with the GitHub actions workflow. +.PHONY: test/docker +test/docker: test/docker/xenial test/docker/focal |