Skip to content

Commit 248650a

Browse files
committed
Add provider Makefile release targets and signing
* Add Terraform provider Makefile release targets to produce zip files, checksums, and signatures * Add linux-arm64 to the release list
1 parent 99bd479 commit 248650a

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

Makefile

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ export GO111MODULE=on
33
export GOFLAGS=-mod=vendor
44

55
VERSION=$(shell git describe --tags --match=v* --always --dirty)
6+
SEMVER=$(shell git describe --tags --match=v* --always --dirty | cut -c 2-)
67

78
.PHONY: all
89
all: build test vet lint fmt
@@ -46,8 +47,13 @@ clean:
4647
release: \
4748
clean \
4849
_output/plugin-linux-amd64.tar.gz \
50+
_output/plugin-linux-arm64.tar.gz \
4951
_output/plugin-darwin-amd64.tar.gz \
50-
_output/plugin-windows-amd64.tar.gz
52+
_output/plugin-windows-amd64.tar.gz \
53+
_output/plugin-linux_amd64.zip \
54+
_output/plugin-linux_arm64.zip \
55+
_output/plugin-darwin_amd64.zip \
56+
_output/plugin-windows_amd64.zip
5157

5258
_output/plugin-%.tar.gz: NAME=terraform-provider-matchbox-$(VERSION)-$*
5359
_output/plugin-%.tar.gz: DEST=_output/$(NAME)
@@ -56,12 +62,37 @@ _output/plugin-%.tar.gz: _output/%/terraform-provider-matchbox
5662
@cp _output/$*/terraform-provider-matchbox $(DEST)
5763
@tar zcvf $(DEST).tar.gz -C _output $(NAME)
5864

65+
_output/plugin-%.zip: NAME=terraform-provider-matchbox_$(SEMVER)_$*
66+
_output/plugin-%.zip: DEST=_output/$(NAME)
67+
_output/plugin-%.zip: _output/%/terraform-provider-matchbox
68+
@mkdir -p $(DEST)
69+
@cp _output/$*/terraform-provider-matchbox $(DEST)/terraform-provider-matchbox_$(VERSION)
70+
@zip -j $(DEST).zip $(DEST)/terraform-provider-matchbox_$(VERSION)
71+
5972
_output/linux-amd64/terraform-provider-matchbox: GOARGS = GOOS=linux GOARCH=amd64
73+
_output/linux-arm64/terraform-provider-matchbox: GOARGS = GOOS=linux GOARCH=arm64
6074
_output/darwin-amd64/terraform-provider-matchbox: GOARGS = GOOS=darwin GOARCH=amd64
6175
_output/windows-amd64/terraform-provider-matchbox: GOARGS = GOOS=windows GOARCH=amd64
6276
_output/%/terraform-provider-matchbox:
6377
$(GOARGS) go build -o $@ github.com/poseidon/terraform-provider-matchbox
6478

79+
release-sign:
80+
cd _output; sha256sum *.zip > terraform-provider-matchbox_$(SEMVER)_SHA256SUMS
81+
gpg2 --armor --detach-sign _output/terraform-provider-matchbox-$(VERSION)-linux-amd64.tar.gz
82+
gpg2 --armor --detach-sign _output/terraform-provider-matchbox-$(VERSION)-linux-arm64.tar.gz
83+
gpg2 --armor --detach-sign _output/terraform-provider-matchbox-$(VERSION)-darwin-amd64.tar.gz
84+
gpg2 --armor --detach-sign _output/terraform-provider-matchbox-$(VERSION)-windows-amd64.tar.gz
85+
gpg2 --detach-sign _output/terraform-provider-matchbox_$(SEMVER)_SHA256SUMS
86+
87+
release-verify: NAME=_output/terraform-provider-matchbox
88+
release-verify:
89+
gpg2 --verify $(NAME)-$(VERSION)-linux-amd64.tar.gz.asc $(NAME)-$(VERSION)-linux-amd64.tar.gz
90+
gpg2 --verify $(NAME)-$(VERSION)-linux-arm64.tar.gz.asc $(NAME)-$(VERSION)-linux-arm64.tar.gz
91+
gpg2 --verify $(NAME)-$(VERSION)-darwin-amd64.tar.gz.asc $(NAME)-$(VERSION)-darwin-amd64.tar.gz
92+
gpg2 --verify $(NAME)-$(VERSION)-windows-amd64.tar.gz.asc $(NAME)-$(VERSION)-windows-amd64.tar.gz
93+
gpg2 --verify $(NAME)_$(SEMVER)_SHA256SUMS.sig $(NAME)_$(SEMVER)_SHA256SUMS
94+
95+
6596
.PHONY: certificates
6697
certificates:
6798
@openssl req -days 3650 -nodes -x509 -config matchbox/testdata/certs.ext -extensions v3_ca -newkey rsa:4096 -keyout matchbox/testdata/ca.key -out matchbox/testdata/ca.crt -subj "/CN=fake-ca"

0 commit comments

Comments
 (0)