Files
terraform-provider-artifactapi/Makefile
T
unkinben 7657b89201 feat: add zip packaging target and woodpecker release pipeline
- Makefile gains `make package` target that builds and zips the provider
  binary in the format expected by artifactapi's local terraform registry:
  terraform-provider-artifactapi_{version}_{os}_{arch}.zip
- New .woodpecker/release.yml pipeline triggers on tag push, builds the
  zip, and uploads it to artifactapi via the local files API
- Secrets: artifactapi_url and artifactapi_repo
2026-06-22 23:33:22 +10:00

44 lines
1.1 KiB
Makefile

.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