github.com/mccv1r0/cni@v0.7.0-alpha1/scripts/release.sh (about)

     1  #!/usr/bin/env bash
     2  set -xe
     3  
     4  SRC_DIR="${SRC_DIR:-$PWD}"
     5  BUILDFLAGS="-a --ldflags '-extldflags \"-static\"'"
     6  
     7  TAG=$(git describe --tags --dirty)
     8  RELEASE_DIR=release-${TAG}
     9  
    10  OUTPUT_DIR=bin
    11  
    12  # Always clean first
    13  rm -Rf ${SRC_DIR}/${RELEASE_DIR}
    14  mkdir -p ${SRC_DIR}/${RELEASE_DIR}
    15  mkdir -p ${OUTPUT_DIR}
    16  
    17  docker run -i -v ${SRC_DIR}:/opt/src --rm golang:1.8-alpine \
    18  /bin/sh -xe -c "\
    19      apk --no-cache add bash tar;
    20      cd /opt/src; umask 0022;
    21      for arch in amd64 arm arm64 ppc64le s390x; do \
    22          rm -f ${OUTPUT_DIR}/* ; \
    23          CGO_ENABLED=0 GOARCH=\$arch ./build.sh ${BUILDFLAGS}; \
    24          for format in tgz; do \
    25              FILENAME=cni-\$arch-${TAG}.\$format; \
    26              FILEPATH=${RELEASE_DIR}/\$FILENAME; \
    27              tar -C ${OUTPUT_DIR} --owner=0 --group=0 -caf \$FILEPATH .; \
    28              if [ \"\$arch\" == \"amd64\" ]; then \
    29                  cp \$FILEPATH ${RELEASE_DIR}/cni-${TAG}.\$format; \
    30              fi; \
    31          done; \
    32      done;
    33      cd ${RELEASE_DIR};
    34        for f in *.tgz; do sha1sum \$f > \$f.sha1; done;
    35        for f in *.tgz; do sha256sum \$f > \$f.sha256; done;
    36        for f in *.tgz; do sha512sum \$f > \$f.sha512; done;
    37      cd ..
    38      chown -R ${UID} ${OUTPUT_DIR} ${RELEASE_DIR}"