Skip to content

Commit

Permalink
chore: clean build and release tooling (#1036)
Browse files Browse the repository at this point in the history
Clean the build and release tooling to remove the unused scripts and
make target, and import the latest best practices from
https://github.com/hashicorp/terraform-provider-scaffolding-framework
  • Loading branch information
jooola authored Nov 11, 2024
1 parent c40aaea commit 7ac8d40
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 104 deletions.
5 changes: 1 addition & 4 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,4 @@ release:
draft: false

changelog:
sort: asc
filters:
exclude:
- "^test:"
disable: true
81 changes: 10 additions & 71 deletions GNUmakefile
Original file line number Diff line number Diff line change
@@ -1,82 +1,21 @@
TEST?=./...
VERSION=$(shell ./scripts/git-version.sh)
PKG_NAME=hcloud
WEBSITE_REPO=github.com/hashicorp/terraform-website
export CGO_ENABLED:=0

default: build
default: lint install generate

build:
go install

clean:
@rm -rf bin

clean-release:
@rm -rf _output

release: \
clean \
clean-release \
_output/terraform-provider-hcloud_linux_amd64.zip \
_output/terraform-provider-hcloud_darwin_amd64.zip \
_output/terraform-provider-hcloud_freebsd_amd64.zip \
_output/terraform-provider-hcloud_freebsd_386.zip \
_output/terraform-provider-hcloud_freebsd_arm.zip \
_output/terraform-provider-hcloud_linux_amd64.zip \
_output/terraform-provider-hcloud_linux_386.zip \
_output/terraform-provider-hcloud_linux_arm.zip \
_output/terraform-provider-hcloud_openbsd_amd64.zip \
_output/terraform-provider-hcloud_openbsd_386.zip \
_output/terraform-provider-hcloud_solaris_amd64.zip \
_output/terraform-provider-hcloud_windows_amd64.zip \
_output/terraform-provider-hcloud_windows_386.zip

bin/darwin_amd64/terraform-provider-hcloud: GOARGS = GOOS=darwin GOARCH=amd64
bin/freebsd_amd64/terraform-provider-hcloud: GOARGS = GOOS=freebsd GOARCH=amd64
bin/freebsd_386/terraform-provider-hcloud: GOARGS = GOOS=freebsd GOARCH=386
bin/freebsd_arm/terraform-provider-hcloud: GOARGS = GOOS=freebsd GOARCH=arm
bin/linux_amd64/terraform-provider-hcloud: GOARGS = GOOS=linux GOARCH=amd64
bin/linux_386/terraform-provider-hcloud: GOARGS = GOOS=linux GOARCH=386
bin/linux_arm/terraform-provider-hcloud: GOARGS = GOOS=linux GOARCH=arm
bin/openbsd_amd64/terraform-provider-hcloud: GOARGS = GOOS=openbsd GOARCH=amd64
bin/openbsd_386/terraform-provider-hcloud: GOARGS = GOOS=openbsd GOARCH=386
bin/solaris_amd64/terraform-provider-hcloud: GOARGS = GOOS=solaris GOARCH=amd64
bin/windows_amd64/terraform-provider-hcloud: GOARGS = GOOS=windows GOARCH=amd64
bin/windows_386/terraform-provider-hcloud: GOARGS = GOOS=windows GOARCH=386
go build -v ./...

bin/%/terraform-provider-hcloud: clean
$(GOARGS) go build -o $@ -a .

_output/terraform-provider-hcloud_%.zip: NAME=terraform-provider-hcloud_$(VERSION)_$*
_output/terraform-provider-hcloud_%.zip: DEST=_output/$(NAME)
_output/terraform-provider-hcloud_%.zip: bin/%/terraform-provider-hcloud
mkdir -p $(DEST)
cp bin/$*/terraform-provider-hcloud README.md CHANGELOG.md LICENSE $(DEST)
cd $(DEST) && zip -r ../$(NAME).zip .
install: build
go install -v ./...

lint:
golangci-lint run --fix

generate:
go -C tools generate ./...

test:
go test $(TEST) $(TESTARGS) -v -timeout=30s -parallel=8
go test -v -cover -timeout=30s -parallel=8 ./...

testacc:
TF_ACC=1 go test $(TEST) $(TESTARGS) -v -timeout=30m -parallel=8

website:
ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO)))
echo "$(WEBSITE_REPO) not found in your GOPATH (necessary for layouts and assets), get-ting..."
git clone https://$(WEBSITE_REPO) $(GOPATH)/src/$(WEBSITE_REPO)
endif
@$(MAKE) -C $(GOPATH)/src/$(WEBSITE_REPO) website-provider PROVIDER_PATH=$(shell pwd) PROVIDER_NAME=$(PKG_NAME)

website-test:
ifeq (,$(wildcard $(GOPATH)/src/$(WEBSITE_REPO)))
echo "$(WEBSITE_REPO) not found in your GOPATH (necessary for layouts and assets), get-ting..."
git clone https://$(WEBSITE_REPO) $(GOPATH)/src/$(WEBSITE_REPO)
endif
@$(MAKE) -C $(GOPATH)/src/$(WEBSITE_REPO) website-provider-test PROVIDER_PATH=$(shell pwd) PROVIDER_NAME=$(PKG_NAME)

TF_ACC=1 go test -v -cover -timeout=30m -parallel=8 ./...

.PHONY: build test testacc release clean clean-release website website-test
.PHONY: build install lint generate test testacc
29 changes: 0 additions & 29 deletions scripts/git-version.sh

This file was deleted.

0 comments on commit 7ac8d40

Please sign in to comment.