Skip to content

Commit 0407d48

Browse files
authored
Improve Makefile (#7)
* Improve Makefile by combining all build targets for different platforms into a single target * Inject version into the binary on build
1 parent c6084b4 commit 0407d48

File tree

2 files changed

+36
-66
lines changed

2 files changed

+36
-66
lines changed

Makefile

Lines changed: 34 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,51 @@
1-
PROJECT_URL=github.com/gatewayd-io/gatewayd
2-
CONFIG_PACKAGE=${PROJECT_URL}/config
1+
PLUGIN_NAME=gatewayd-plugin-js
2+
PROJECT_URL=github.com/gatewayd-io/$(PLUGIN_NAME)
3+
CONFIG_PACKAGE=${PROJECT_URL}/plugin
34
LAST_TAGGED_COMMIT=$(shell git rev-list --tags --max-count=1)
45
VERSION=$(shell git describe --tags ${LAST_TAGGED_COMMIT})
5-
TIMESTAMP=$(shell date -u +"%FT%T%z")
6-
VERSION_DETAILS=${TIMESTAMP}/${LAST_TAGGED_COMMIT_SHORT}
7-
EXTRA_LDFLAGS=-X ${CONFIG_PACKAGE}.Version=${VERSION} -X ${CONFIG_PACKAGE}.VersionDetails=${VERSION_DETAILS}
8-
FILES=gatewayd-plugin-js checksum.txt gatewayd_plugin.yaml README.md LICENSE
6+
EXTRA_LDFLAGS=-X ${CONFIG_PACKAGE}.Version=$(shell echo ${VERSION} | sed 's/^v//')
7+
FILES=$(PLUGIN_NAME) checksum.txt gatewayd_plugin.yaml README.md LICENSE
98

109
tidy:
1110
@go mod tidy
1211

13-
test:
14-
@go test -v ./...
12+
build: tidy
13+
@go build -ldflags "-s -w"
1514

1615
checksum:
17-
@sha256sum -b gatewayd-plugin-js
16+
@sha256sum -b $(PLUGIN_NAME)
1817

1918
update-all:
2019
@go get -u ./...
20+
@go mod tidy
2121

2222
build-dev: tidy
23-
@CGO_ENABLED=0 go build
23+
@go build
24+
25+
test:
26+
@go test -v ./...
2427

2528
create-build-dir:
2629
@mkdir -p dist
2730

28-
build-linux-amd64: tidy
29-
@echo "Building gatewayd ${VERSION} for linux-amd64"
30-
@mkdir -p dist/linux-amd64
31-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/linux-amd64/
32-
@GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/linux-amd64/gatewayd-plugin-js
33-
@sha256sum dist/linux-amd64/gatewayd-plugin-js | sed 's/dist\/linux-amd64\///g' >> dist/linux-amd64/checksum.txt
34-
@tar czf dist/gatewayd-plugin-js-linux-amd64-${VERSION}.tar.gz -C ./dist/linux-amd64/ ${FILES}
35-
@sha256sum dist/gatewayd-plugin-js-linux-amd64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
36-
37-
build-linux-arm64:
38-
@echo "Building gatewayd ${VERSION} for linux-arm64"
39-
@mkdir -p dist/linux-arm64
40-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/linux-arm64/
41-
@GOOS=linux GOARCH=arm64 CGO_ENABLED=0 CC=aarch64-linux-gnu-gcc go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/linux-arm64/gatewayd-plugin-js
42-
@sha256sum dist/linux-arm64/gatewayd-plugin-js | sed 's/dist\/linux-arm64\///g' >> dist/linux-arm64/checksum.txt
43-
@tar czf dist/gatewayd-plugin-js-linux-arm64-${VERSION}.tar.gz -C ./dist/linux-arm64/ ${FILES}
44-
@sha256sum dist/gatewayd-plugin-js-linux-arm64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
45-
46-
build-darwin-amd64:
47-
@echo "Building gatewayd ${VERSION} for darwin-arm64"
48-
@mkdir -p dist/darwin-amd64
49-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/darwin-amd64/
50-
@GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/darwin-amd64/gatewayd-plugin-js
51-
@shasum -a 256 dist/darwin-amd64/gatewayd-plugin-js | sed 's/dist\/darwin-amd64\///g' >> dist/darwin-amd64/checksum.txt
52-
@tar czf dist/gatewayd-plugin-js-darwin-amd64-${VERSION}.tar.gz -C ./dist/darwin-amd64/ ${FILES}
53-
@shasum -a 256 dist/gatewayd-plugin-js-darwin-amd64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
54-
55-
build-darwin-arm64:
56-
@echo "Building gatewayd ${VERSION} for darwin-arm64"
57-
@mkdir -p dist/darwin-arm64
58-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/darwin-arm64/
59-
@GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/darwin-arm64/gatewayd-plugin-js
60-
@shasum -a 256 dist/darwin-arm64/gatewayd-plugin-js | sed 's/dist\/darwin-arm64\///g' >> dist/darwin-arm64/checksum.txt
61-
@tar czf dist/gatewayd-plugin-js-darwin-arm64-${VERSION}.tar.gz -C ./dist/darwin-arm64/ ${FILES}
62-
@shasum -a 256 dist/gatewayd-plugin-js-darwin-arm64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
63-
64-
build-windows-amd64:
65-
@echo "Building gatewayd ${VERSION} for windows-amd64"
66-
@mkdir -p dist/windows-amd64
67-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/windows-amd64/
68-
@GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/windows-amd64/gatewayd-plugin-js.exe
69-
@sha256sum dist/windows-amd64/gatewayd-plugin-js.exe | sed 's/dist\/windows-amd64\///g' >> dist/windows-amd64/checksum.txt
70-
@zip -r dist/gatewayd-plugin-js-windows-amd64-${VERSION}.zip -j ./dist/windows-amd64/
71-
@sha256sum dist/gatewayd-plugin-js-windows-amd64-${VERSION}.zip | sed 's/dist\///g' >> dist/checksums.txt
72-
73-
build-windows-arm64:
74-
@echo "Building gatewayd ${VERSION} for windows-arm64"
75-
@mkdir -p dist/windows-arm64
76-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/windows-arm64/
77-
@GOOS=windows GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/windows-arm64/gatewayd-plugin-js.exe
78-
@sha256sum dist/windows-arm64/gatewayd-plugin-js.exe | sed 's/dist\/windows-arm64\///g' >> dist/windows-arm64/checksum.txt
79-
@zip -r dist/gatewayd-plugin-js-windows-arm64-${VERSION}.zip -j ./dist/windows-arm64/
80-
@sha256sum dist/gatewayd-plugin-js-windows-arm64-${VERSION}.zip | sed 's/dist\///g' >> dist/checksums.txt
81-
82-
build-release: tidy create-build-dir build-linux-amd64 build-linux-arm64 build-darwin-amd64 build-darwin-arm64 build-windows-amd64 build-windows-arm64
31+
build-release: tidy create-build-dir
32+
@echo "Building ${PLUGIN_NAME} ${VERSION} for release"
33+
@$(MAKE) build-platform GOOS=linux GOARCH=amd64 OUTPUT_DIR=dist/linux-amd64
34+
@$(MAKE) build-platform GOOS=linux GOARCH=arm64 OUTPUT_DIR=dist/linux-arm64
35+
@$(MAKE) build-platform GOOS=darwin GOARCH=amd64 OUTPUT_DIR=dist/darwin-amd64
36+
@$(MAKE) build-platform GOOS=darwin GOARCH=arm64 OUTPUT_DIR=dist/darwin-arm64
37+
@$(MAKE) build-platform GOOS=windows GOARCH=amd64 OUTPUT_DIR=dist/windows-amd64
38+
@$(MAKE) build-platform GOOS=windows GOARCH=arm64 OUTPUT_DIR=dist/windows-arm64
39+
40+
build-platform: tidy
41+
@echo "Building ${PLUGIN_NAME} ${VERSION} for $(GOOS)-$(GOARCH)"
42+
@mkdir -p $(OUTPUT_DIR)
43+
@cp README.md LICENSE gatewayd_plugin.yaml $(OUTPUT_DIR)/
44+
@GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o $(OUTPUT_DIR)/$(PLUGIN_NAME)
45+
@sha256sum $(OUTPUT_DIR)/$(PLUGIN_NAME) | sed 's#$(OUTPUT_DIR)/##g' >> $(OUTPUT_DIR)/checksum.txt
46+
@if [ "$(GOOS)" = "windows" ]; then \
47+
zip -q -r dist/$(PLUGIN_NAME)-$(GOOS)-$(GOARCH)-${VERSION}.zip -j $(OUTPUT_DIR)/; \
48+
else \
49+
tar czf dist/$(PLUGIN_NAME)-$(GOOS)-$(GOARCH)-${VERSION}.tar.gz -C $(OUTPUT_DIR)/ ${FILES}; \
50+
fi
51+
@sha256sum dist/$(PLUGIN_NAME)-$(GOOS)-$(GOARCH)-${VERSION}.* | sed '#dist/##g' >> dist/checksums.txt

plugin/module.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import (
77
)
88

99
var (
10+
Version = "0.0.1"
1011
PluginID = v1.PluginID{
1112
Name: "gatewayd-plugin-js",
12-
Version: "0.0.1",
13+
Version: Version,
1314
RemoteUrl: "github.com/gatewayd-io/gatewayd-plugin-js",
1415
}
1516
PluginMap = map[string]goplugin.Plugin{

0 commit comments

Comments
 (0)