chore(build): add distribution task

This commit is contained in:
Nicolas Carlier 2018-02-12 20:18:33 +00:00
parent a37d4151bc
commit 8aed458769
3 changed files with 40 additions and 15 deletions

View File

@ -2,19 +2,17 @@ language: go
go:
- 1.8
script:
- GOARCH=amd64 make
- GOARCH=arm64 make
- GOARCH=arm make
- GOOS=darwin make
- make test
- make distribution
deploy:
provider: releases
api_key:
secure: VATbHmgR1DDXlIHEMpupuTggPU6wgtZk3BFK/eT5L+qqhnfSal1z+ZsypgWMGZN2Ch6WTRFaXqUhpV7N2oo+pQoXAYcDFWTd3BiTUied+pKVoUa8VuZFF2TW1cNcVJ3fnFPMFnpJPTYkld//+8s8zJQitTabE1QZdXNYPU1uUiY=
file:
- release/webhookd-linux-amd64
- release/webhookd-linux-arm64
- release/webhookd-linux-arm
- release/webhookd-darwin-amd64
- release/webhookd-linux-amd64.tgz
- release/webhookd-linux-arm64.tgz
- release/webhookd-linux-arm.tgz
- release/webhookd-darwin-amd64.tgz
skip_cleanup: true
on:
repo: ncarlier/webhookd

View File

@ -22,7 +22,7 @@ ARTEFACT=release/$(APPNAME)-$(GOOS)-$(GOARCH)$(EXT)
# Extract version infos
VERSION:=`git describe --tags`
LDFLAGS=-ldflags "-X $(AUTHOR)/$(APPNAME)/version.App=${VERSION}"
LDFLAGS=-ldflags "-X $(AUTHOR)/$(APPNAME)/main.Version=${VERSION}"
all: build
@ -52,7 +52,7 @@ $(ARTEFACT): build
## Run tests
test:
go test
cd $(APPBASE)/$(APPNAME) && go test `go list ./... | grep -v vendor`
.PHONY: test
## Install executable
@ -67,3 +67,21 @@ image:
docker build --rm -t ncarlier/$(APPNAME) .
.PHONY: image
## Generate changelog
changelog:
standard-changelog --first-release
.PHONY: changelog
## GZIP executable
gzip:
tar cvzf $(ARTEFACT).tgz $(ARTEFACT)
.PHONY: gzip
## Create distribution binaries
distribution:
GOARCH=amd64 make build gzip
GOARCH=arm64 make build gzip
GOARCH=arm make build gzip
GOOS=darwin make build gzip
.PHONY: distribution

View File

@ -22,15 +22,24 @@ artefact_url=`curl -s $release_url | grep browser_download_url | head -n 1 | cut
[ -z "$artefact_url" ] && die "Unable to extract artefact URL"
base_download_url=`dirname $artefact_url`
download_url=$base_download_url/webhookd-$os-$arch
download_url=$base_download_url/webhookd-$os-${arch}.tgz
download_file=/tmp/webhookd-$os-${arch}.tgz
bin_target=/usr/local/bin/webhookd
echo "Downloading $download_url to $bin_target ..."
sudo curl -o $bin_target --fail -L $download_url
[ $? != 0 ] && die "Unable download binary for your architecture."
echo "Downloading $download_url to $download_file ..."
sudo curl -o $download_file --fail -L $download_url
[ $? != 0 ] && die "Unable to download binary for your architecture."
echo "Extracting $download_file ..."
sudo tar xvzf ${download_file} -C /tmp/
[ $? != 0 ] && die "Unable to extract archive."
echo "Moving binary to $bin_target ..."
sudo mv /tmp/release/webhookd* $bin_target
[ $? != 0 ] && die "Unable to move binary."
echo "Making $bin_target as executable ..."
sudo chmod +x $bin_target
[ $? != 0 ] && die "Unable to make the binary as executable."
echo "Installation done. Type 'webhookd' to start the server."
echo "Installation done. Type 'webhookd' to start the server."