aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/run.yml2
-rw-r--r--Makefile34
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