github.com/kaisawind/go-swagger@v0.19.0/hack/deploy.sh (about) 1 #!/bin/bash 2 3 set -eu -o pipefail 4 5 prjdir=$(git rev-parse --show-toplevel) 6 7 build_binary() { 8 LDFLAGS="-s -w -X github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/cmd/swagger/commands.Commit=${CIRCLE_SHA1}" 9 LDFLAGS="$LDFLAGS -X github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/cmd/swagger/commands.Version=${CIRCLE_TAG-dev}" 10 gox -ldflags "$LDFLAGS" -tags netgo -output "./dist/bin/{{.Dir}}_{{.OS}}_{{.Arch}}" "$@" ./cmd/swagger 11 } 12 13 prepare() { 14 rm -rf $prjdir/dist 15 mkdir -p $prjdir/dist/bin 16 mkdir -p $prjdir/dist/build 17 mkdir -p $prjdir/dist/linux/amd64/usr/bin 18 } 19 20 prepare_linuxpkg() { 21 cp $prjdir/dist/bin/swagger_linux_amd64 $prjdir/dist/linux/amd64/usr/bin/swagger 22 } 23 24 build_linuxpkg() { 25 fpm -t $1 -p ./dist/build -s dir -C ./dist/linux/amd64 -v ${CIRCLE_TAG:1} -n swagger --license "ASL 2.0" -a x86_64 -m $API_EMAIL --url "https://goswagger.io" usr 26 } 27 28 upload_to_github() { 29 echo "uploading to github" 30 cd $prjdir/dist/bin 31 sha1sum * > sha1sum.txt 32 sha256sum * > sha256sum.txt 33 34 github-release release -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME -t $CIRCLE_TAG -d "$(cat $prjdir/notes/${CIRCLE_TAG}.md)" 35 for f in *; do 36 github-release upload -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME -t $CIRCLE_TAG -n $f -f $f 37 done 38 } 39 40 upload_to_bintray() { 41 cd $prjdir 42 nver="${CIRCLE_TAG:1}" 43 curl \ 44 --retry 10 \ 45 --retry-delay 5 \ 46 -T ./dist/build/swagger-${nver//-/_}-1.x86_64.rpm \ 47 -u${API_USERNAME}:${BINTRAY_TOKEN} \ 48 https://api.bintray.com/content/go-swagger/goswagger-rpm/swagger/${nver}/swagger-${nver//-/_}-1.x86_64.rpm 49 50 curl --retry 10 --retry-delay 5 -XPOST -u${API_USERNAME}:${BINTRAY_TOKEN} https://api.bintray.com/content/go-swagger/goswagger-rpm/swagger/${nver}/publish 51 52 curl \ 53 --retry 10 \ 54 --retry-delay 5 \ 55 -T ./dist/build/swagger_${nver}_amd64.deb \ 56 -u${API_USERNAME}:${BINTRAY_TOKEN} \ 57 "https://api.bintray.com/content/go-swagger/goswagger-debian/swagger/${nver}/swagger_${nver}_amd64.deb;deb_distribution=ubuntu;deb_component=main;deb_architecture=amd64" 58 59 curl --retry 10 --retry-delay 5 -XPOST -u${API_USERNAME}:${BINTRAY_TOKEN} https://api.bintray.com/content/go-swagger/goswagger-debian/swagger/${nver}/publish 60 } 61 62 deploy_docker() { 63 cd $prjdir 64 LDFLAGS="-s -w -linkmode external -extldflags \"-static\"" 65 LDFLAGS="$LDFLAGS -X github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/cmd/swagger/commands.Commit=${CIRCLE_SHA1}" 66 LDFLAGS="$LDFLAGS -X github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/cmd/swagger/commands.Version=${CIRCLE_TAG-dev}" 67 go build -o ./dist/swagger-musl -ldflags "$LDFLAGS" -a ./cmd/swagger 68 mkdir -p deploybuild 69 cp Dockerfile ./dist/swagger-musl ./deploybuild 70 docker build --pull -t quay.io/goswagger/swagger:$CIRCLE_TAG ./deploybuild 71 docker tag quay.io/goswagger/swagger:$CIRCLE_TAG quay.io/goswagger/swagger:latest 72 docker login -u $API_USERNAME -p $QUAY_PASS https://quay.io 73 docker push quay.io/goswagger/swagger:$CIRCLE_TAG 74 } 75 76 # prepare 77 # build_binary -os="linux darwin windows" -arch="amd64" 78 # build_binary -os="linux windows" -arch="386" 79 # build_binary -os="linux" -arch="arm64 arm" 80 81 # prepare_linuxpkg 82 # build_linuxpkg deb 83 # build_linuxpkg rpm 84 85 # upload_to_github 86 # upload_to_bintray 87 88 # deploy_docker