diff options
-rw-r--r-- | .github/workflows/run.yml | 2 | ||||
-rw-r--r-- | Makefile | 34 |
2 files changed, 35 insertions, 1 deletions
diff --git a/.github/workflows/run.yml b/.github/workflows/run.yml index a4e6fe4..d1a5348 100644 --- a/.github/workflows/run.yml +++ b/.github/workflows/run.yml @@ -32,4 +32,4 @@ jobs: ${{ secrets.SSH_KEY }} EOF - name: Run Ansible play - run: ansible-playbook --inventory inventory.ini --limit '${{ github.event.inputs.hosts }}' --private-key .ansible-key maintenance.yml + run: make run limit='${{ github.event.inputs.hosts }}' diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c1e8d9c --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ +MAKEFLAGS += --no-builtin-rules --no-builtin-variables --warn-undefined-variables +.DEFAULT_GOAL := all +.DELETE_ON_ERROR: +.SUFFIXES: +SHELL := bash +.SHELLFLAGS := -e -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 + +limit ?= all +$(eval $(call noexpand,limit)) + +.PHONY: all +all: run + +.PHONY: run +run: +ifdef CI + ansible-playbook --inventory inventory.ini --limit '$(call escape,$(limit))' --private-key .ansible-key maintenance.yml +else + ansible-playbook --inventory inventory.ini --limit '$(call escape,$(limit))' maintenance.yml +endif |