/ Makefile
Makefile
1 APP_NAME = consul-alerts 2 VERSION = latest 3 BUILD_ARCHS=linux-386 linux-amd64 darwin-amd64 freebsd-amd64 4 5 all: clean build 6 7 clean: 8 @echo "--> Cleaning build" 9 @rm -rf ./build 10 11 prepare: 12 @for arch in ${BUILD_ARCHS}; do \ 13 mkdir -p build/bin/$${arch}; \ 14 done 15 @mkdir -p build/test 16 @mkdir -p build/doc 17 @mkdir -p build/tar 18 19 format: 20 @echo "--> Formatting source code" 21 @go fmt ./... 22 23 test: prepare format 24 @echo "--> Testing application" 25 @go test -outputdir build/test ./... 26 27 build: test 28 @echo "--> Building local application" 29 @go build -o build/bin/`uname -s`-`uname -p`/${VERSION}/${APP_NAME} -v . 30 31 build-all: test 32 @echo "--> Building all application" 33 @for arch in ${BUILD_ARCHS}; do \ 34 echo "... $${arch}"; \ 35 GOOS=`echo $${arch} | cut -d '-' -f 1` \ 36 GOARCH=`echo $${arch} | cut -d '-' -f 2` \ 37 go build -o build/bin/$${arch}/${VERSION}/${APP_NAME} -v . ; \ 38 done 39 40 package: build-all 41 @echo "--> Packaging application" 42 @for arch in ${BUILD_ARCHS}; do \ 43 tar czf build/tar/${APP_NAME}-${VERSION}-$${arch}.tgz -C build/bin/$${arch}/${VERSION} ${APP_NAME} ; \ 44 done 45 46 release: package 47 ifeq ($(VERSION) , latest) 48 @echo "--> Removing Latest Version" 49 @curl -s -X DELETE -u ${ACCESS_KEY} https://api.bintray.com/packages/darkcrux/generic/${APP_NAME}/versions/${VERSION} 50 @echo 51 endif 52 @echo "--> Releasing version: ${VERSION}" 53 @for arch in ${BUILD_ARCHS}; do \ 54 curl -s -T "build/tar/${APP_NAME}-${VERSION}-$${arch}.tgz" -u "${ACCESS_KEY}" "https://api.bintray.com/content/darkcrux/generic/${APP_NAME}/${VERSION}/${APP_NAME}-${VERSION}-$${arch}.tgz"; \ 55 echo "... $${arch}"; \ 56 done 57 @echo "--> Publishing version ${VERSION}" 58 @curl -s -X POST -u ${ACCESS_KEY} https://api.bintray.com/content/darkcrux/generic/${APP_NAME}/${VERSION}/publish 59 @echo 60 @echo "Github Release" 61 @gh-release create AcalephStorage/consul-alerts ${VERSION}