mirror of
https://github.com/wahyd4/terraform-provider-confluentcloud.git
synced 2026-08-09 04:25:51 +10:00
80 lines
2.2 KiB
Makefile
80 lines
2.2 KiB
Makefile
TEST?=./...
|
|
|
|
# Project variables
|
|
NAME := terraform-provider-confluentcloud
|
|
# Build variables
|
|
BUILD_DIR := bin
|
|
VERSION ?= $(shell git describe --tags --exact-match 2>/dev/null || git describe --tags 2>/dev/null || echo "v0.0.0-$(COMMIT_HASH)")
|
|
# Go variables
|
|
GOCMD := GO111MODULE=on go
|
|
GOBUILD ?= CGO_ENABLED=0 $(GOCMD) build
|
|
GOOS ?= $(shell go env GOOS)
|
|
GOARCH ?= $(shell go env GOARCH)
|
|
GOFILES ?= $(shell find . -type f -name '*.go' -not -path "./vendor/*")
|
|
|
|
.PHONY: all
|
|
all: clean test lint build
|
|
|
|
|
|
.PHONY: checkfmt
|
|
checkfmt: RESULT = $(shell goimports -l $(GOFILES) | tee >(if [ "$$(wc -l)" = 0 ]; then echo "OK"; fi))
|
|
checkfmt: SHELL := /usr/bin/env bash
|
|
checkfmt: ## Check formatting of all go files
|
|
@ echo "$(RESULT)"
|
|
@ if [ "$(RESULT)" != "OK" ]; then exit 1; fi
|
|
|
|
.PHONY: fmt
|
|
fmt: ## Format all go files
|
|
@ $(MAKE) --no-print-directory log-$@
|
|
goimports -w $(GOFILES)
|
|
|
|
.PHONY: lint
|
|
lint: ## Run linter
|
|
@ $(MAKE) --no-print-directory log-$@
|
|
GO111MODULE=on golangci-lint run ./...
|
|
|
|
.PHONY: clean
|
|
clean: ## Clean workspace
|
|
@ $(MAKE) --no-print-directory log-$@
|
|
rm -rf ./$(BUILD_DIR)
|
|
|
|
.PHONY: build
|
|
build: clean ## Build binary for current OS/ARCH
|
|
@ $(MAKE) --no-print-directory log-$@
|
|
$(GOBUILD) -o ./$(BUILD_DIR)/$(GOOS)-$(GOARCH)/$(NAME)
|
|
|
|
.PHONY: build-all
|
|
build-all: GOOS = linux darwin
|
|
build-all: GOARCH = amd64
|
|
build-all: clean ## Build binary for all OS/ARCH
|
|
@ $(MAKE) --no-print-directory log-$
|
|
@ ./scripts/build/build-all-osarch.sh "$(BUILD_DIR)" "$(NAME)" "$(VERSION)" "$(GOOS)" "$(GOARCH)"
|
|
|
|
.PHONY: test
|
|
test:
|
|
$(GOCMD) test ./...
|
|
|
|
.PHONY: testacc
|
|
testacc:
|
|
TF_LOG=debug TF_ACC=1 $(GOCMD) test $(TEST) -v $(TESTARGS) -timeout 120m
|
|
|
|
.PHONY: gox
|
|
gox:
|
|
GO111MODULE=off go get -u github.com/mitchellh/gox
|
|
|
|
.PHONY: goimports
|
|
goimports:
|
|
GO111MODULE=off go get -u golang.org/x/tools/cmd/goimports
|
|
|
|
.PHONY: golangci
|
|
golangci:
|
|
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(shell go env GOPATH)/bin $(GOLANGCI_VERSION)
|
|
|
|
|
|
.PHONY: tools
|
|
tools: ## Install required tools
|
|
@ $(MAKE) --no-print-directory log-$@
|
|
@ $(MAKE) --no-print-directory goimports golangci gox
|
|
|
|
log-%:
|
|
@ grep -h -E '^$*:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m==> %s\033[0m\n", $$2}'
|