Skip to content

Commit 72b1a55

Browse files
committed
Migrate build to goreleaser.
1 parent 60ebbfe commit 72b1a55

File tree

6 files changed

+69
-75
lines changed

6 files changed

+69
-75
lines changed

.goreleaser.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
git:
2+
short_hash: true
3+
4+
builds:
5+
- main: cmd/lora-gateway-bridge/main.go
6+
binary: lora-gateway-bridge
7+
goos:
8+
- windows
9+
- darwin
10+
- linux
11+
goarch:
12+
- amd64
13+
- 386
14+
- arm
15+
- arm64
16+
goarm:
17+
- 5
18+
- 6
19+
- 7
20+
ignore:
21+
- goos: darwin
22+
goarch: 386
23+
24+
release:
25+
draft: true

.travis.yml

Lines changed: 13 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@ before_deploy:
1919
if ! [ "$BEFORE_DEPLOY_RUN" ]; then
2020
export BEFORE_DEPLOY_RUN=1;
2121
22+
make dist;
23+
2224
rvm --default use system;
23-
wget https://github.com/spf13/hugo/releases/download/v0.20.7/hugo_0.20.7_Linux-64bit.deb;
24-
sudo dpkg -i hugo_0.20.7_Linux-64bit.deb;
25-
rm *.deb;
2625
sudo apt-get install -y ruby ruby-dev;
2726
sudo gem install --no-ri --no-rdoc fpm;
28-
make documentation;
2927
30-
GOOS=linux GOARCH=amd64 make package package-deb;
31-
GOOS=linux GOARCH=386 make package package-deb;
32-
GOOS=linux GOARCH=arm make package package-deb;
33-
GOOS=linux GOARCH=arm64 make package package-deb;
34-
GOOS=darwin GOARCH=amd64 make package;
35-
GOOS=windows BINEXT=.exe GOARCH=386 make package;
36-
GOOS=windows BINEXT=.exe GOARCH=amd64 make package;
28+
PACKAGE_ARCH=x86_64 make package-deb;
29+
PACKAGE_ARCH=i368 make package-deb;
30+
PACKAGE_ARCH=armhf make package-deb;
31+
PACKAGE_ARCH=arm64 make package-deb;
32+
33+
mkdir -p dist/upload/tar;
34+
mkdir -p dist/upload/deb;
35+
mv dist/*.tar.gz dist/upload/tar;
36+
mv dist/deb/*.deb dist/upload/deb;
3737
fi
3838
3939
deploy:
@@ -43,33 +43,10 @@ deploy:
4343
secret_access_key:
4444
secure: OJZy+FZeI/S9wM/qqnTHAqjItI266K5tfIqx1+au1MC1QrXAV61NbTjKAo/xUGaKLOcTh1h1/KPTTdYZnQQa8e7QjA+1PF/89Ou7pIhMqWDKCNvFHUoUCTVCLf0f4dmKZcVTEZrobFct+ZhMq5mnzvuIvvf+TT4pfee1BUUpxbMWjA/HaMQIKfRxeb5tLyOnOkKg66Gd99trAY55r8SqPzkqcqvuOqeh7Ic2Uk+Uxlosf+9gRUIWHk7i4miiKvZQmPJfOOKTlvy3BStt1KGSycBt2mYkPAtAAScnobV8GHRcA0ZVI8Blp9W5/D18L43xAP+BRdBnoblr5GNnHGznlltYOskbTPuHzo8TVOl+8sct3uVwbrxg0rzJttAqkoMce7Xg4TLLe44gsp38YOyS4D2NzvEJZMvwoq1uCdR72JOANP5fxOxLnBO2weHy1K1F3SlXXaTJpQZ6lg2j/eaZO3V9tFFbqqHB4PdwQrZ9tjvuA2Dm6NNtQIMPeD8hq6Rq/6/4sXLi7+V8Sbl9f5W+FFfqKTFUl4WH1QPu/bFwC04UL1LDX9kO30Wg9Rlgc18S5HeMivofF1NVDnY+V8SV8lHVyHXASwSRl/OrMvRf21u5+wJf6U8E1s1cK/wYdIOSm6Rbot+6UK9M3ev8VALerqAr6uTVbCmm6Bqmlc+79jw=
4545
bucket: builds.loraserver.io
46-
local-dir: dist/docs
47-
upload-dir: docs
48-
acl: private
49-
region: eu-west-1
50-
on:
51-
repo: brocaar/lora-gateway-bridge
52-
branch: master
53-
54-
- provider: s3
55-
skip_cleanup: true
56-
access_key_id: AKIAJRLX7TQLGT6NN7WQ
57-
secret_access_key:
58-
secure: OJZy+FZeI/S9wM/qqnTHAqjItI266K5tfIqx1+au1MC1QrXAV61NbTjKAo/xUGaKLOcTh1h1/KPTTdYZnQQa8e7QjA+1PF/89Ou7pIhMqWDKCNvFHUoUCTVCLf0f4dmKZcVTEZrobFct+ZhMq5mnzvuIvvf+TT4pfee1BUUpxbMWjA/HaMQIKfRxeb5tLyOnOkKg66Gd99trAY55r8SqPzkqcqvuOqeh7Ic2Uk+Uxlosf+9gRUIWHk7i4miiKvZQmPJfOOKTlvy3BStt1KGSycBt2mYkPAtAAScnobV8GHRcA0ZVI8Blp9W5/D18L43xAP+BRdBnoblr5GNnHGznlltYOskbTPuHzo8TVOl+8sct3uVwbrxg0rzJttAqkoMce7Xg4TLLe44gsp38YOyS4D2NzvEJZMvwoq1uCdR72JOANP5fxOxLnBO2weHy1K1F3SlXXaTJpQZ6lg2j/eaZO3V9tFFbqqHB4PdwQrZ9tjvuA2Dm6NNtQIMPeD8hq6Rq/6/4sXLi7+V8Sbl9f5W+FFfqKTFUl4WH1QPu/bFwC04UL1LDX9kO30Wg9Rlgc18S5HeMivofF1NVDnY+V8SV8lHVyHXASwSRl/OrMvRf21u5+wJf6U8E1s1cK/wYdIOSm6Rbot+6UK9M3ev8VALerqAr6uTVbCmm6Bqmlc+79jw=
59-
bucket: builds.loraserver.io
60-
local-dir: dist
46+
local-dir: dist/upload
47+
upload-dir: lora-gateway-bridge
6148
acl: private
6249
region: eu-west-1
6350
on:
6451
tags: true
6552
repo: brocaar/lora-gateway-bridge
66-
67-
- provider: releases
68-
skip_cleanup: true
69-
api_key:
70-
secure: i9kTpzo0LVyMdMyN66SxXGBYovd98+B4DW9t/xFxx0cOzCwDKx/2p2WYF7cbT6FhVQVPZHJuIqatEFPVHgkRbiqsLIN26RL7xdCGV0gqjYoXVjJEdr6s9z1BhxUDGHY5oKhTZP7mHM+5jdHyZiwBbVFhJkeEbuZfwaOu7fho3IgGgnMASMh0LODk5niBnAJah1tMyUa5+7lW3fBAjwP2DNPICzIFm35JFjI5ViyirWcSapuTTE70BOH02PNd/wjx/4VnW5+wgCPeZXqjUQ5u94KHNLj5AxwotbzLNM1fDngJeDCmFMUPCjR+LCRnEO+4qhdMAhBdiTn0tXFoVQXlywrmfBdQtA3Kr8GSWHF1x2Oqr6/sIti0+fjyqdHRG2LdL7shEktBrG3muNUrVflpHXBzPOm9HvzQ7Hws6JudY52kermCeCRcbypcWz9PSK+XtAIbQxY0hO3cBRysNKjQ3K6IwPaUUqJzLrdowZ/LRhDur1JBXwc6cxS+4Yv885jUhIIfvFuM/lE1btK1zAtqVT1YVfXSpnMWk/FvBohHbQRy4i80Vd3an41hdM5Di/rPI8rkRaCqGRep3/FitKCVixvI1lKzgfRDFGLIBTBor0tL6tfD4T3ZuC/hRpTzI+UHx8XyO1RGZQIHNj3jIOJl+EBVYz+93KS3Z80v3uMj5ck=
71-
file_glob: true
72-
file: "dist/tar/*.tar.gz"
73-
on:
74-
tags: true
75-
repo: brocaar/lora-gateway-bridge

Makefile

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
.PHONY: build clean test package serve run-compose-test
22
PKGS := $(shell go list ./... | grep -v /vendor/)
33
VERSION := $(shell git describe --always)
4-
GOOS ?= linux
5-
GOARCH ?= amd64
64

75
build:
8-
@echo "Compiling source for $(GOOS) $(GOARCH)"
6+
@echo "Compiling source"
97
@mkdir -p build
10-
@GOOS=$(GOOS) GOARCH=$(GOARCH) go build $(GO_EXTRA_BUILD_ARGS) -ldflags "-s -w -X main.version=$(VERSION)" -o build/lora-gateway-bridge$(BINEXT) cmd/lora-gateway-bridge/main.go
8+
@go build $(GO_EXTRA_BUILD_ARGS) -ldflags "-s -w -X main.version=$(VERSION)" -o build/lora-gateway-bridge cmd/lora-gateway-bridge/main.go
119

1210
clean:
1311
@echo "Cleaning up workspace"
1412
@rm -rf build
15-
@rm -rf dist/tar/$(VERSION)
13+
@rm -rf dist
1614
@rm -rf docs/public
1715

1816
test:
@@ -25,24 +23,24 @@ test:
2523

2624
documentation:
2725
@echo "Building documentation"
28-
@mkdir -p dist/docs
26+
@mkdir -p dist
2927
@cd docs && hugo
30-
@cd docs/public/ && tar -pczf ../../dist/docs/lora-gateway-bridge.tar.gz .
28+
@cd docs/public/ && tar -pczf ../../dist/lora-gateway-bridge-documentation.tar.gz .
3129

32-
package: clean build
33-
@echo "Creating package for $(GOOS) $(GOARCH)"
34-
@mkdir -p dist/tar/$(VERSION)
35-
@cp build/* dist/tar/$(VERSION)
36-
@cd dist/tar/$(VERSION)/ && tar -pczf ../lora_gateway_bridge_$(VERSION)_$(GOOS)_$(GOARCH).tar.gz .
37-
@rm -rf dist/tar/$(VERSION)
30+
dist:
31+
@goreleaser
3832

39-
package-deb:
33+
snapshot:
34+
@goreleaser --snapshot
35+
36+
package-deb: dist
4037
@cd packaging && TARGET=deb ./package.sh
4138

4239
requirements:
4340
@go get -u github.com/golang/lint/golint
4441
@go get -u github.com/kisielk/errcheck
4542
@go get -u github.com/golang/dep/cmd/dep
43+
@go get -u github.com/goreleaser/goreleaser
4644
@dep ensure -v
4745

4846
# shortcuts for development

docs/content/community/source.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ pre-compiled packages available):
3131

3232
#### Go
3333

34-
Make sure you have [Go](https://golang.org/) installed (1.8+) and that the LoRa
34+
Make sure you have [Go](https://golang.org/) installed (1.10+) and that the LoRa
3535
Gateway Bridge repository has been cloned to
3636
`$GOPATH/src/github.com/brocaar/lora-gateway-bridge`.
3737

@@ -49,18 +49,6 @@ make test
4949
# compile
5050
make build
5151

52-
# cross-compile for Linux ARM
53-
GOOS=linux GOARCH=arm make build
54-
55-
# cross-compile for Windows AMD64
56-
GOOS=windows BINEXT=.exe GOARCH=amd64 make build
57-
58-
# build the .tar.gz file
59-
make package
60-
61-
# build the .tar.gz file for Linux ARM
62-
GOOS=linux GOARCH=arm make package
63-
64-
# build the .tar.gz file for Windows AMD64
65-
GOOS=windows BINEXT=.exe GOARCH=amd64 make package
52+
# compile snapshot for supported architectures (using goreleaser)
53+
make snapshot
6654
```

docs/content/overview/downloads.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ menu:
1515
| [lora-gateway-bridge_{{< version >}}_darwin_amd64.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_darwin_amd64.tar.gz) | OS X | amd64 |
1616
| [lora-gateway-bridge_{{< version >}}_linux_386.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_386.tar.gz) | Linux | 386 |
1717
| [lora-gateway-bridge_{{< version >}}_linux_amd64.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_amd64.tar.gz) | Linux | amd64 |
18-
| [lora-gateway-bridge_{{< version >}}_linux_arm.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_arm.tar.gz) | Linux | arm |
18+
| [lora-gateway-bridge_{{< version >}}_linux_armv5.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_armv5.tar.gz) | Linux | armv5 |
19+
| [lora-gateway-bridge_{{< version >}}_linux_armv6.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_armv6.tar.gz) | Linux | armv6 |
20+
| [lora-gateway-bridge_{{< version >}}_linux_armv7.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_armv7.tar.gz) | Linux | armv7 |
21+
| [lora-gateway-bridge_{{< version >}}_linux_arm64.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_linux_arm64.tar.gz) | Linux | arm64 |
1922
| [lora-gateway-bridge_{{< version >}}_windows_386.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_windows_386.tar.gz) | Windows | 386 |
2023
| [lora-gateway-bridge_{{< version >}}_windows_amd64.tar.gz](https://dl.loraserver.io/tar/lora-gateway-bridge_{{< version >}}_windows_amd64.tar.gz) | Windows | amd64 |
2124

@@ -26,6 +29,7 @@ menu:
2629
| [lora-gateway-bridge_{{< version >}}_i386.deb](https://dl.loraserver.io/deb/lora-gateway-bridge_{{< version >}}_i386.deb) | Linux | 386 |
2730
| [lora-gateway-bridge_{{< version >}}_amd64.deb](https://dl.loraserver.io/deb/lora-gateway-bridge_{{< version >}}_amd64.deb) | Linux | amd64 |
2831
| [lora-gateway-bridge_{{< version >}}_armhf.deb](https://dl.loraserver.io/deb/lora-gateway-bridge_{{< version >}}_armhf.deb) | Linux | arm |
32+
| [lora-gateway-bridge_{{< version >}}_arm64.deb](https://dl.loraserver.io/deb/lora-gateway-bridge_{{< version >}}_arm64.deb) | Linux | arm64 |
2933

3034
## Debian Ubuntu repository
3135

packaging/package.sh

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
#!/usr/bin/env bash
22

3-
# map GOARCH to ARCH
4-
case $GOARCH in
5-
'amd64') ARCH="x86_64"
3+
# map ARCH to file suffix
4+
case $PACKAGE_ARCH in
5+
'x86_64') ARCH="amd64"
66
;;
7-
'386') ARCH="i386"
7+
'i368') ARCH="386"
88
;;
9-
'arm') ARCH="armhf"
9+
'armhf') ARCH="armv6"
1010
;;
1111
'arm64') ARCH="arm64"
1212
;;
1313
*)
14-
echo "Unknown target $GOARCH"
14+
echo "Unknown PACKAGE_ARCH $PACKAGE_ARCH"
1515
exit 1
1616
;;
1717
esac
@@ -30,6 +30,7 @@ NAME=lora-gateway-bridge
3030
BIN_DIR=/usr/bin
3131
SCRIPT_DIR=/usr/lib/$NAME/scripts
3232
TMP_WORK_DIR=`mktemp -d`
33+
TMP_DIR=`mktemp -d`
3334
LOGROTATE_DIR=/etc/logrotate.d
3435

3536
POSTINSTALL_SCRIPT=$TARGET/post-install.sh
@@ -42,7 +43,7 @@ URL=https://docs.loraserver.io/$NAME/
4243
MAINTAINER=info@brocaar.com
4344
VENDOR="LoRa Server project"
4445
DESCRIPTION="LoRa Gateway Bridge abstracts the packet_forwarder protocol into JSON over MQTT"
45-
DIST_FILE_PATH="../dist/tar/${NAME//-/_}_${VERSION}_linux_${GOARCH}.tar.gz"
46+
DIST_FILE_PATH="../dist/${NAME}_${VERSION}_linux_${ARCH}.tar.gz"
4647
DEB_FILE_PATH="../dist/deb"
4748

4849
COMMON_FPM_ARGS="\
@@ -54,7 +55,7 @@ COMMON_FPM_ARGS="\
5455
--after-install $POSTINSTALL_SCRIPT \
5556
--before-install $PREINSTALL_SCRIPT \
5657
--after-remove $POSTUNINSTALL_SCRIPT \
57-
--architecture $ARCH \
58+
--architecture $PACKAGE_ARCH \
5859
--name $NAME \
5960
--version $VERSION"
6061

@@ -70,7 +71,8 @@ mkdir -p $TMP_WORK_DIR/$SCRIPT_DIR
7071
mkdir -p $TMP_WORK_DIR/$LOGROTATE_DIR
7172

7273
# unpack pre-compiled binary
73-
tar -zxf $DIST_FILE_PATH -C $TMP_WORK_DIR/$BIN_DIR
74+
tar -zxf $DIST_FILE_PATH -C $TMP_DIR
75+
cp $TMP_DIR/$NAME $TMP_WORK_DIR/$BIN_DIR
7476

7577
# copy scripts
7678
cp $TARGET/init.sh $TMP_WORK_DIR/$SCRIPT_DIR

0 commit comments

Comments
 (0)