aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile50
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