FORMULA_NAME = "nginx" PWD = $(shell pwd) # --------------------------------------------------------------- define render_dockerfile python $(PWD)/tools/filltmpl.py $(FORMULA_NAME) $(1) endef define docker_build docker build --force-rm -t $(FORMULA_NAME):salt-testing-$(1) -f Dockerfile.$(1) . endef define docker_run_local docker run --rm -v $(PWD):/opt/$(FORMULA_NAME)-formula --env=STAGE=TEST -h salt-testing-$(1) --name salt-testing-$(1) -it $(FORMULA_NAME):salt-testing-$(1) /bin/bash endef define run_tests ./tools/run-tests.sh $(FORMULA_NAME) $(1) endef # --- convenience functions ------------------------------------- define build_thing $(call render_dockerfile,$(1)) && $(call docker_build,$(1)) endef define run_local_tests $(call build_thing,$(1)) && $(call run_tests,$(1)) endef define run_local $(call build_thing,$(1)) && $(call docker_run_local,$(1)) endef # --------------------------------------------------------------- setup: pip install Jinja2 clean: find . -name '*.pyc' -exec rm '{}' ';' rm -rf Dockerfile.* # delete pytest caches... # rm -rf tests/pytests/*/.pytest_cache # rm -rf tests/pytests/*/__pycache__ rm -rf tests/pytests/apply-all-tests/.pytest_cache rm -rf tests/pytests/apply-all-tests/__pycache__ # --- centos_master_2017.7.2 ------------------------------------ test-centos_master_2017.7.2: clean $(call run_local_tests,centos_master_2017.7.2) local-centos_master_2017.7.2: clean $(call run_local,centos_master_2017.7.2) # --- debian_master_2017.7.2 ------------------------------------ test-debian_master_2017.7.2: clean $(call run_local_tests,debian_master_2017.7.2) local-debian_master_2017.7.2: clean $(call run_local,debian_master_2017.7.2) # --- opensuse_master_2017.7.2 ------------------------------------ test-opensuse_master_2017.7.2: clean $(call run_local_tests,opensuse_master_2017.7.2) local-opensuse_master_2017.7.2: clean $(call run_local,opensuse_master_2017.7.2) # --- ubuntu_master_2016.11.3 ------------------------------------ test-ubuntu_master_2016.11.3: clean $(call run_local_tests,ubuntu_master_2016.11.3) local-ubuntu_master_2016.11.3: clean $(call run_local,ubuntu_master_2016.11.3) # --- ubuntu_master_2017.7.2 ------------------------------------ test-ubuntu_master_2017.7.2: clean $(call run_local_tests,ubuntu_master_2017.7.2) local-ubuntu_master_2017.7.2: clean $(call run_local,ubuntu_master_2017.7.2)