Skip to content

Commit d59b439

Browse files
committed
Add release workflow and update Makefile
1 parent 05da118 commit d59b439

File tree

2 files changed

+110
-6
lines changed

2 files changed

+110
-6
lines changed

.github/workflows/release.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build and release gatewayd-plugin-js
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build-and-release:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v3
17+
with:
18+
fetch-depth: 0
19+
- name: Set up Go 1.20
20+
uses: actions/setup-go@v3
21+
with:
22+
go-version: "1.20"
23+
cache: true
24+
- name: Install dependencies
25+
run: sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu
26+
- name: Build and release binaries
27+
run: |
28+
make build-release
29+
- name: Create release and add artifacts
30+
uses: softprops/action-gh-release@v1
31+
with:
32+
files: |
33+
dist/*.tar.gz
34+
dist/checksums.txt
35+
dist/*.zip
36+
draft: false
37+
prerelease: false
38+
tag_name: ${{ github.ref_name }}
39+
name: ${{ github.ref_name }}
40+
generate_release_notes: true

Makefile

Lines changed: 70 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,82 @@
1+
PROJECT_URL=github.com/gatewayd-io/gatewayd
2+
CONFIG_PACKAGE=${PROJECT_URL}/config
3+
LAST_TAGGED_COMMIT=$(shell git rev-list --tags --max-count=1)
4+
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
9+
110
tidy:
211
@go mod tidy
312

4-
build:
5-
@tidy
6-
@go build -ldflags "-s -w"
13+
test:
14+
@go test -v ./...
715

816
checksum:
917
@sha256sum -b gatewayd-plugin-js
1018

1119
update-all:
1220
@go get -u ./...
1321

14-
test:
15-
@go test -v ./...
16-
1722
build-dev: tidy
1823
@CGO_ENABLED=0 go build
24+
25+
create-build-dir:
26+
@mkdir -p dist
27+
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

0 commit comments

Comments
 (0)