github.com/splunk/dan1-qbec@v0.7.3/prepare-release.sh (about)

     1  #!/bin/bash
     2  
     3  set -euo pipefail
     4  
     5  version_num=$(grep ^VERSION Makefile  | awk -F= '{print $2}' | sed 's/ //')
     6  
     7  if [[ -z "${version_num}" ]]
     8  then
     9      echo "unable to derive version, abort" >&2
    10      exit 1
    11  fi
    12  
    13  version="v${version_num}"
    14  echo "publish version ${version}"
    15  
    16  if [[ ! -z "$(git tag -l ${version})" ]]
    17  then
    18      echo "tag ${version} already exists, abort" >&2
    19      exit 1
    20  fi
    21  
    22  rm -rf dist/
    23  mkdir -p dist/assets
    24  
    25  make clean get
    26  
    27  if [[ ! -z "$(git status --porcelain)" ]]
    28  then
    29      echo "unclean work dir, abort" >&2
    30      exit 1
    31  fi
    32  
    33  
    34  for env in darwin-amd64 linux-amd64 windows-amd64
    35  do
    36      echo ===
    37      echo build ${env}
    38      echo ===
    39      export GOOS=$(echo ${env} | awk -F- '{print $1}')
    40      export GOARCH=$(echo ${env} | awk -F- '{print $2}')
    41      export CGO_ENABLED=0
    42      make os_archive
    43  done
    44  
    45  (cd dist/assets && shasum -a 256 *> sha256-checksums.txt)
    46  
    47  git tag -s -m "${version} release" ${version}
    48