57 lines
1.2 KiB
Makefile
57 lines
1.2 KiB
Makefile
NAMESPACE ?= <PROJECT_CHANGE_ME>
|
|
PACKAGE := backend
|
|
SHELL := /bin/bash
|
|
REGISTRY := registry.halfakop.ru
|
|
REPOSITORY := $(NAMESPACE)/$(PACKAGE)
|
|
|
|
SOURCE_VERSION ?= $(shell cat VERSION)
|
|
SOURCE_COMMIT ?= $(shell git rev-parse --short=8 HEAD)
|
|
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD | sed s,feature/,,g)
|
|
|
|
IMAGE_NAME_TAGGED = $(REPOSITORY):$(SOURCE_VERSION)
|
|
EXEC=$(PACKAGE).run
|
|
|
|
all: help
|
|
|
|
help:
|
|
@echo "app - build the application"
|
|
@echo "tests - run tests"
|
|
@echo "run - run application locally"
|
|
@echo "clean - clean build environment"
|
|
|
|
fix:
|
|
@go fix ./...
|
|
|
|
app: fix
|
|
@go build -o ./${EXEC} ./src
|
|
|
|
tests: build
|
|
@go test ./...
|
|
|
|
run:
|
|
@./${EXEC}
|
|
|
|
clean:
|
|
@rm -rf ./${EXEC}%
|
|
|
|
release: title clean build login push
|
|
|
|
build:
|
|
docker build --compress \
|
|
-t $(IMAGE_NAME_TAGGED) \
|
|
-t $(REGISTRY)/$(IMAGE_NAME_TAGGED) \
|
|
--build-arg SOURCE_VERSION=$(SOURCE_VERSION) \
|
|
--build-arg SOURCE_COMMIT=$(SOURCE_COMMIT) \
|
|
${DOCKER_OPTS} \
|
|
-f Dockerfile .
|
|
|
|
login:
|
|
$(call check-var-defined,DOCKER_USERNAME)
|
|
$(call check-var-defined,DOCKER_PASSWORD)
|
|
@echo ${DOCKER_PASSWORD} | \
|
|
docker login -u ${DOCKER_USERNAME} --password-stdin $(REGISTRY)
|
|
|
|
push:
|
|
docker push $(REGISTRY)/$(IMAGE_NAME_TAGGED)
|
|
|
|
.PHONY: tests release build login push |