58 lines
1.5 KiB
Makefile
58 lines
1.5 KiB
Makefile
SHELL := /bin/bash
|
|
|
|
# linting
|
|
LINTER_CMD := "github.com/golangci/golangci-lint/cmd/golangci-lint" run
|
|
LINTER_CONFIG := .golangci.yaml
|
|
|
|
# docker image options
|
|
DOCKER_REGISTRY ?= quay.io
|
|
DOCKER_IMAGE_NAME ?= kubernetes-entrypoint
|
|
DOCKER_IMAGE_PREFIX ?= airshipit
|
|
DOCKER_IMAGE_TAG ?= dev
|
|
DOCKER_IMAGE ?= $(DOCKER_REGISTRY)/$(DOCKER_IMAGE_PREFIX)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)
|
|
DOCKER_MAKE_TARGET := build
|
|
DOCKER_TARGET_STAGE ?= release
|
|
DOCKER_BASE_IMAGE ?= docker.io/golang:1.12.6-stretch
|
|
DOCKER_RELEASE_IMAGE ?= scratch
|
|
|
|
PKG := ./...
|
|
TESTS := .
|
|
|
|
.PHONY: build
|
|
build:
|
|
@mkdir -p bin
|
|
@CGO_ENABLED=0 go build -o bin/kubernetes-entrypoint
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
@go run ${LINTER_CMD} --config ${LINTER_CONFIG}
|
|
|
|
.PHONY: docker-image
|
|
docker-image:
|
|
@docker build . --tag $(DOCKER_IMAGE) --target $(DOCKER_TARGET_STAGE) \
|
|
--build-arg MAKE_TARGET=$(DOCKER_MAKE_TARGET) \
|
|
--build-arg GO_IMAGE=$(DOCKER_BASE_IMAGE) \
|
|
--build-arg RELEASE_IMAGE=$(DOCKER_RELEASE_IMAGE)
|
|
|
|
.PHONY: docker-image-unit-tests
|
|
docker-image-unit-tests: DOCKER_MAKE_TARGET = unit-tests
|
|
docker-image-unit-tests: DOCKER_TARGET_STAGE = builder
|
|
docker-image-unit-tests: docker-image
|
|
|
|
.PHONY: docker-image-lint
|
|
docker-image-lint: DOCKER_MAKE_TARGET = lint
|
|
docker-image-lint: DOCKER_TARGET_STAGE = builder
|
|
docker-image-lint: docker-image
|
|
|
|
.PHONY: get-modules
|
|
get-modules:
|
|
@go mod download
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@rm -rf bin
|
|
|
|
.PHONY: unit-test
|
|
unit-tests:
|
|
@go test -v ./...
|