-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy path05_deploy.mk
55 lines (42 loc) · 1.99 KB
/
05_deploy.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
KAMAL_IMAGE = ghcr.io/basecamp/kamal:v2.4.0
CONFIG_FILE = --config-file .kamal/deploy.yml
KAMAL ?= docker run -it --rm -v "${PWD}:/workdir" -v "/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock" -e SSH_HOST -e SSH_USER -e SSH_PORT -e DOCKER_USERNAME -e DOCKER_PASSWORD -e SSH_AUTH_SOCK="/run/host-services/ssh-auth.sock" -v /var/run/docker.sock:/var/run/docker.sock $(KAMAL_IMAGE)
DESTINATION ?= staging
VERSION ?= latest
ACCESSORY ?= database
KAMAL_FLAGS = $(CONFIG_FILE) --destination=$(DESTINATION)
DEPLOY_FLAGS = --skip-push --version=$(VERSION)
ifneq (,$(wildcard .kamal/.env))
include .kamal/.env
export
endif
deploy-setup: ## Initialize the deployment environment.
$(KAMAL) setup $(KAMAL_FLAGS) $(DEPLOY_FLAGS)
.PHONY: deploy-setup
deploy: ## Deploy the application version to the specified environment.
$(KAMAL) deploy $(KAMAL_FLAGS) $(DEPLOY_FLAGS)
.PHONY: deploy
deploy-unlock: ## Release the lock on the specified environment.
$(KAMAL) lock release $(KAMAL_FLAGS)
.PHONY: deploy-unlock
deploy-logs: ## Show the logs of the application in the specified environment.
$(KAMAL) app logs --follow $(KAMAL_FLAGS)
.PHONY: deploy-logs
deploy-accessory-boot: ## Initialize one or all accessories.
$(KAMAL) accessory boot $(ACCESSORY) $(KAMAL_FLAGS)
.PHONY: deploy-accessory-boot
deploy-accessory-reboot: ## Stop, remove and boot again one or all accessories.
$(KAMAL) accessory reboot $(ACCESSORY) $(KAMAL_FLAGS)
.PHONY: deploy-accessory-reboot
deploy-accessory-remove: ## Remove one or all accessories.
$(KAMAL) accessory remove $(ACCESSORY) $(KAMAL_FLAGS)
.PHONY: deploy-accessory-remove
deploy-accessory-logs: ## Show the logs of one accessory.
$(KAMAL) accessory logs $(ACCESSORY) $(KAMAL_FLAGS)
.PHONY: deploy-accessory-logs
deploy-remove-all: ## Remove the application from the specified environment.
$(KAMAL) remove $(KAMAL_FLAGS)
.PHONY: deploy-remove-all
deploy-cmd: ## Execute a custom command on the specified environment.
$(KAMAL) $(CMD) $(KAMAL_FLAGS)
.PHONY: deploy-cmd