github.com/abhinav/git-pr@v0.6.1-0.20171029234004-54218d68c11b/scripts/release.sh (about)

     1  #!/bin/bash -e
     2  
     3  if [[ -z "$GITHUB_TOKEN" ]]; then
     4  	echo "GITHUB_TOKEN is not set"
     5  	exit 1
     6  fi
     7  
     8  VERSION="$1"
     9  if [[ -z "$VERSION" ]]; then
    10  	echo "USAGE: $0 VERSION"
    11  	exit 1
    12  fi
    13  
    14  CMDS=(git-pr)
    15  OSes=(darwin linux)
    16  ARCHes=(amd64)
    17  
    18  build() {
    19  	os="$1"
    20  	arch="$2"
    21  	releasedir="releases/${os}_${arch}"
    22  	tarname="git-pr.$VERSION.$os.$arch.tar"
    23  
    24  	mkdir -p "$releasedir"
    25  	for cmd in "${CMDS[@]}"; do
    26  		GOOS="$os" GOARCH="$arch" go build -o "$releasedir/$cmd" "./cmd/$cmd"
    27  	done
    28  
    29  	tar -cf "releases/$tarname" -C "$releasedir" .
    30  	gzip "releases/$tarname"
    31  	rm -r "$releasedir"
    32  }
    33  
    34  CHANGELOG=$(go run scripts/extract_changelog.go "$VERSION")
    35  
    36  echo "Releasing $VERSION"
    37  echo ""
    38  echo "CHANGELOG:"
    39  echo "$CHANGELOG"
    40  echo ""
    41  
    42  for os in "${OSes[@]}"; do
    43  	for arch in "${ARCHes[@]}"; do
    44  		echo "Building for $os $arch"
    45  		build "$os" "$arch"
    46  	done
    47  done
    48  
    49  ghr \
    50  	-username "$GITHUB_USER" \
    51  	-token "$GITHUB_TOKEN" \
    52  	-body "$CHANGELOG" \
    53  	"$VERSION" releases/