diff --git a/Makefile b/Makefile index d83ed4c22158182ec74d1b5c839cb1c3a6026d19..710df40f3734101b56061cd3d423612d7c159cfa 100644 --- a/Makefile +++ b/Makefile @@ -27,13 +27,6 @@ build: golang @mkdir -p bin go build -ldflags "${LFLAGS}" -o bin/${NAME} -release: clean golang - mkdir -p release - $(foreach GOOS, $(PLATFORMS),\ - $(foreach GOARCH, $(ARCHITECTURES), $(shell [ $(GOOS) = "windows" ] && EXT=".exe"; env GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -a -tags netgo -ldflags "-w ${LFLAGS}" -o bin/${NAME}$$EXT; \ - tar -czvf release/${NAME}-$(GOOS)-$(GOARCH).tar.gz -C bin/ ${NAME}$$EXT >/dev/null; \ - sha1sum release/${NAME}-$(GOOS)-$(GOARCH).tar.gz | cut -d " " -f1 > release/${NAME}-$(GOOS)-$(GOARCH).tar.gz.sha1 ))) - static: golang @echo "--> Compiling the static binary" @mkdir -p bin diff --git a/release.sh b/release.sh index c7960eba3aad41d14cde182566c5f9aa2680d6c5..28a6e2577b02a3832666c2e5cea8d9a2d87d6af0 100755 --- a/release.sh +++ b/release.sh @@ -1,4 +1,10 @@ #!/bin/bash -e +NAME="keycloak-gatekeeper" +PLATFORMS="darwin linux windows" +ARCHITECTURES="amd64" +GIT_SHA=$(git --no-pager describe --always --dirty) +BUILD_TIME=$(date '+%s') +LFLAGS="-X main.gitsha=$GIT_SHA -X main.compiled=$BUILD_TIME" DIR="$PWD" VERSION=`./get-version.sh` @@ -6,12 +12,38 @@ echo "Version: $VERSION" TMP=`mktemp -d` +# Perform some clean up before building it +clean() { + rm -rf ./bin/* 2>/dev/null + rm -rf ./release/* 2>/dev/null +} + +release() { + mkdir -p release + for PLATFORM in $PLATFORMS; do + EXT="" + if [ "$PLATFORM" == "windows" ]; then + EXT=".exe" + fi + for ARCH in $ARCHITECTURES; do + env GOOS=$PLATFORM GOARCH=$ARCH CGO_ENABLED=0 go build -a -tags netgo -ldflags " -w $LFLAGS" -o bin/$NAME$EXT + tar -czvf release/"$NAME-$PLATFORM-$ARCH".tar.gz -C bin/ $NAME$EXT >/dev/null + sha1sum release/"$NAME-$PLATFORM-$ARCH".tar.gz | cut -d " " -f1 > release/"$NAME-$GOOS-$GOARCH".tar.gz.sha1 + # Test if tar file is not corrupted + if ! tar -tf release/"$NAME-$PLATFORM-$ARCH".tar.gz &>/dev/null;then + echo "Corrupted tar file" + exit 1 + fi + done + done +} + echo "------------------------------------------------------------------------------------------------------------" -echo "Building:" +echo "Building: $NAME-$VERSION" echo "" -make release - +clean +release echo "------------------------------------------------------------------------------------------------------------" echo "Upload to jboss.org:"