github.com/jfrog/jfrog-cli-platform-services@v1.2.0/Makefile (about) 1 SHELL := /bin/bash 2 .DEFAULT_GOAL = build 3 GOCMD = go 4 export PROJECT_DIR ?= $(CURDIR) 5 BINARY_CLI = bin 6 WORKSPACE_ROOT = $(shell cd "${PROJECT_DIR}" && pwd) 7 TOOLS_DIR := $(CURDIR)/.tools 8 SCRIPTS_DIR = ${PROJECT_DIR}/.github/scripts 9 LINKERFLAGS = -s -w 10 COMPILERFLAGS = all=-trimpath=$(WORKSPACE_ROOT) 11 GOOS = $(shell go env GOOS) 12 GOARCH = $(shell go env GOARCH) 13 GO_SOURCES = $(eval GO_SOURCES := $$(shell find . -type f -name "*.go" | grep -v ".*_mock\.go"))$(GO_SOURCES) 14 15 ########## FORMAT ########## 16 17 format: GOFUMPT GOIMPORTS 18 @${GOFUMPT} -w $(GO_SOURCES) 19 @${GOIMPORTS} -w -local jfrog.com $(GO_SOURCES) 20 21 GOFUMPT = ${TOOLS_DIR}/gofumpt 22 GOFUMPT_VERSION = 0.5.0 23 24 GOFUMPT: 25 ${GOFUMPT} --version 2>/dev/null | grep ${GOFUMPT_VERSION} || GOBIN=${TOOLS_DIR} $(GOCMD) install mvdan.cc/gofumpt@v${GOFUMPT_VERSION} 26 27 GOIMPORTS = ${TOOLS_DIR}/goimports 28 GOIMPORTS_VERSION = 0.16.1 29 30 GOIMPORTS: 31 GOBIN=${TOOLS_DIR} $(GOCMD) install golang.org/x/tools/cmd/goimports@v${GOIMPORTS_VERSION} 32 33 ########## ANALYSE ########## 34 35 GOLANGCI_LINT = ${TOOLS_DIR}/golangci-lint 36 GOLANGCI_LINT_VERSION = 1.55.2 37 38 verify: GOLANGCI_LINT 39 echo $(GO_SOURCES) 40 $(GOLANGCI_LINT) run --out-format tab --config "${WORKSPACE_ROOT}/.golangci.yml" 41 42 GOLANGCI_LINT: 43 ${GOLANGCI_LINT} --version 2>/dev/null | grep ${GOLANGCI_LINT_VERSION} || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ${TOOLS_DIR} v${GOLANGCI_LINT_VERSION} 44 45 ########## BUILD ########## 46 prereq:: 47 ${GOCMD} install github.com/jstemmer/go-junit-report@v1.0.0 48 49 build:: 50 go env GOOS GOARCH 51 go build -ldflags="${LINKERFLAGS}" -gcflags ${COMPILERFLAGS} -o ${BINARY_CLI}/worker-cli-plugin main.go 52 53 54 build-install:: build 55 mkdir -p "${HOME}/.jfrog/plugins/worker/bin" 56 mv ${BINARY_CLI}/worker-cli-plugin "${HOME}/.jfrog/plugins/worker/bin/worker" 57 chmod +x "${HOME}/.jfrog/plugins/worker/bin/worker" 58 59 ########## TEST ########## 60 61 test: prereq 62 $(SCRIPTS_DIR)/gotest.sh ./... ${TEST_ARGS} 63 64 .PHONY: $(MAKECMDGOALS)