aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml5
-rw-r--r--Makefile62
2 files changed, 63 insertions, 4 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 21027df..d1e5cbc 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -42,7 +42,4 @@ jobs:
private_key: '${{ secrets.WG_PRIVATE_KEY }}'
preshared_key: '${{ secrets.WG_PRESHARED_KEY }}'
- name: Deploy
- run: |
- docker-compose pull
- docker-compose build --pull
- docker-compose up -d
+ run: make deploy
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..0a4c1e8
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,62 @@
+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
+
+.PHONY: all
+all: serve
+
+PORT ?= 23666
+$(eval $(call noexpand,PORT))
+
+URL := http://localhost:$(PORT)/
+STATE := ./void.state
+
+.PHONY: serve
+serve:
+ ./server.py --port '$(call escape,$(PORT))' --void '$(call escape,$(STATE))'
+
+.PHONY: clean
+clean:
+ rm -f -- '$(call escape,$(STATE))'
+
+.PHONY: view
+view:
+ xdg-open '$(call escape,$(URL))' &> /dev/null
+
+DOCKER_HOST ?= unix:///var/run/docker.sock
+$(eval $(call noexpand,DOCKER_HOST))
+export DOCKER_HOST
+
+.PHONY: docker-build
+docker-build:
+ docker-compose pull
+ docker-compose build --pull
+
+.PHONY: docker-serve
+docker-serve: docker-build
+ docker-compose up
+
+.PHONY: deploy
+deploy: docker-build
+ docker-compose up -d
+
+.PHONY: undeploy
+undeploy:
+ docker-compose down --rmi all --volumes