This repository has been archived by the owner on May 4, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 14
/
Makefile
91 lines (72 loc) · 1.99 KB
/
Makefile
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# Copyright (c) 2018 Cisco and/or its affiliates.
#
# 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.
# We want to use bash
SHELL:=/bin/bash
WORKER_COUNT ?= 1
# Default target, no other targets should be before default
.PHONY: default
default: all
# Code formatting
include .mk/formatting.mk
# Static code analysis
include .mk/code_analysis.mk
# Include Yaml lint
include .mk/yaml.mk
GOPATH?=$(shell go env GOPATH 2>/dev/null)
GOCMD=go
GOGET=${GOCMD} get
GOGENERATE=${GOCMD} generate
GOINSTALL=${GOCMD} install
GOTEST=${GOCMD} test
GOVET=${GOCMD} vet --all
# Export some of the above variables so they persist for the shell scripts
# which are run from the Makefiles
export GOPATH \
GOCMD \
GOGET \
GOGENERATE \
GOINSTALL \
GOTEST \
GOVET
# Setup proxies for docker build
ifeq ($(HTTP_PROXY),)
HTTPBUILD=
else
HTTPBUILD=--build-arg HTTP_PROXY=$(HTTP_PROXY)
endif
ifeq ($(HTTPS_PROXY),)
HTTPSBUILD=
else
HTTPSBUILD=--build-arg HTTPS_PROXY=$(HTTPS_PROXY)
endif
DOCKERBUILD=docker build ${HTTPBUILD} ${HTTPSBUILD}
.PHONY: all check verify # docker-build docker-push
all: check verify
check:
@shellcheck `find . -name "*.sh" -not -path "*vendor/*"`; \
.PHONY: format deps generate install test test-race vet
#
# The following targets are meant to be run when working with the code locally.
#
deps:
generate:
@${GOGENERATE} ./...
install:
@${GOINSTALL} ./...
test:
@${GOTEST} $$(go list ./... | grep -v -e "sample")
test-race:
@${GOTEST} -race ./... -cover
vet:
@${GOVET} ./...