## This Makefile uses the help target explained in the following blogpost: ## ## https://victoria.dev/blog/how-to-create-a-self-documenting-makefile/ .DEFAULT_GOAL := help # splits current git annotated tag into 'MAJOR MINOR PATCH EXTRAS'. # intended to be used as arguments for certain scripts requiring a semver as args current_semver := $(shell git describe | tr -d 'v' | tr '.' ' ' | tr '-' ' ') .PHONY: help help: ## Show this help @grep -E -h '\s##\s' $(MAKEFILE_LIST) | \ sort | \ awk \ 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' .PHONY: go-install go-install: ## Use `go install` to build and link the executable go install -a .PHONY: docker-build docker-build: ## Build container image #docker-compose build \ #--build-arg bottin_version=`git describe` docker-compose build .PHONY: docker-deploy docker-deploy: ## Using `docker-compose up`, deploy the database and containers docker-compose up -d .PHONY: docker-tag-from-git docker-tag-from-git: ## Tag latest image according to annotated tag from `git describe` ./scripts/docker-tag.sh $(current_semver) .PHONY: docker-push-from-git docker-push-from-git: ## Push images to git.agecem.com according to annotated tag from `git describe` ./scripts/docker-push.sh $(current_semver) ## pipelines .PHONY: deploy deploy: docker-build docker-deploy ## Build and deploy container image