containerd/Makefile
Christopher M. Luciano 683fd7f0e5
Add containerdVersion flag
Add version flag that only prints the static version for the binary.

This commit does not include build details for containers since
Makefile does not build them.

Closes #8

Signed-off-by: Christopher M. Luciano <cmluciano@us.ibm.com>
2017-04-24 14:46:16 -04:00

115 lines
2.9 KiB
Makefile

# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
GO ?= go
EPOCH_TEST_COMMIT ?= f9e02affccd51702191e5312665a16045ffef8ab
PROJECT := github.com/kubernetes-incubator/cri-containerd
BINDIR ?= ${DESTDIR}/usr/local/bin
BUILD_DIR ?= _output
# VERSION is the version of the binary.
VERSION:=$(shell git describe --tags --dirty)
BUILD_TAGS:= -ldflags '-X $(PROJECT)/pkg/version.criContainerdVersion=$(VERSION)'
all: binaries
default: help
help:
@echo "Usage: make <target>"
@echo
@echo " * 'install' - Install binaries to system locations"
@echo " * 'binaries' - Build cri-containerd"
@echo " * 'test' - Test cri-containerd"
@echo " * 'clean' - Clean artifacts"
@echo " * 'verify' - Execute the source code verification tools"
@echo " * 'install.tools' - Installs tools used by verify"
@echo " * 'uninstall' - Remove installed binaries from system locations"
@echo " * 'version' - Print current cri-containerd release version"
.PHONY: check-gopath
check-gopath:
ifndef GOPATH
$(error GOPATH is not set)
endif
verify: lint gofmt boiler
version:
@echo $(VERSION)
lint: check-gopath
@echo "checking lint"
@./hack/lint.sh
gofmt:
@echo "checking gofmt"
@./hack/verify-gofmt.sh
boiler:
@echo "checking boilerplate"
@./hack/verify-boilerplate.sh
cri-containerd: check-gopath
$(GO) build -o $(BUILD_DIR)/$@ \
$(BUILD_TAGS) \
$(PROJECT)/cmd/cri-containerd
test:
go test -timeout=1m -v -race ./pkg/... $(BUILD_TAGS)
clean:
rm -f $(BUILD_DIR)/cri-containerd
binaries: cri-containerd
install: check-gopath
install -D -m 755 $(BUILD_DIR)/cri-containerd $(BINDIR)/cri-containerd
uninstall:
rm -f $(BINDIR)/cri-containerd
.PHONY: .gitvalidation
# When this is running in travis, it will only check the travis commit range
.gitvalidation: check-gopath
ifeq ($(TRAVIS),true)
git-validation -q -run DCO,short-subject
else
git-validation -v -run DCO,short-subject -range $(EPOCH_TEST_COMMIT)..HEAD
endif
.PHONY: install.tools .install.gitvalidation .install.gometalinter
install.tools: .install.gitvalidation .install.gometalinter
.install.gitvalidation:
go get -u github.com/vbatts/git-validation
.install.gometalinter:
go get -u github.com/alecthomas/gometalinter
gometalinter --install
.PHONY: \
binaries \
boiler \
test \
clean \
default \
gofmt \
help \
install \
lint \
uninstall \
version