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