.PHONY: build install test lint fmt clean tidy package BINARY := terraform-provider-artifactapi VERSION ?= 0.0.1 OS_ARCH := linux_amd64 INSTALL_VERSION := $(shell echo $(VERSION) | sed 's/^v//') INSTALL_DIR := ~/.terraform.d/plugins/git.unkin.net/unkin/artifactapi/$(INSTALL_VERSION)/$(OS_ARCH) ZIP := $(BINARY)_$(INSTALL_VERSION)_$(OS_ARCH).zip GO_VERSION_REQUIRED := 1.23 GO_VERSION_ACTUAL := $(shell go version | sed 's/go version go\([0-9]*\.[0-9]*\).*/\1/') check-go: @if [ "$$(printf '%s\n%s' "$(GO_VERSION_REQUIRED)" "$(GO_VERSION_ACTUAL)" | sort -V | head -1)" != "$(GO_VERSION_REQUIRED)" ]; then \ echo "ERROR: Go >= $(GO_VERSION_REQUIRED) required, found $(GO_VERSION_ACTUAL)"; exit 1; \ fi build: check-go tidy go build -ldflags="-s -w -X main.version=$(VERSION)" -o $(BINARY) install: build mkdir -p $(INSTALL_DIR) cp $(BINARY) $(INSTALL_DIR)/ test: check-go go test -race -count=1 ./... lint: check-go go vet ./... fmt: check-go gofmt -w . package: build cp $(BINARY) $(BINARY)_v$(INSTALL_VERSION) zip $(ZIP) $(BINARY)_v$(INSTALL_VERSION) rm $(BINARY)_v$(INSTALL_VERSION) clean: rm -f $(BINARY) *.zip tidy: go mod tidy