1
0
mirror of https://github.com/Luzifer/github-publish.git synced 2024-09-20 00:12:56 +00:00
github-publish/golang.sh

57 lines
1.4 KiB
Bash
Raw Normal View History

2016-11-21 12:48:30 +00:00
#!/bin/bash
curl -sL https://raw.githubusercontent.com/Luzifer/github-publish/master/SHA256SUMS | \
2016-11-21 19:21:56 +00:00
grep "golang.sh" | sha256sum -c || exit 2
2016-11-21 12:48:30 +00:00
VERSION=$(git describe --tags --exact-match || echo "ghpublish__notags")
2016-11-21 12:48:30 +00:00
PWD=$(pwd)
godir=${PWD/${GOPATH}\/src\/}
REPO=${REPO:-$(echo ${godir} | cut -d '/' -f 3)}
GHUSER=${GHUSER:-$(echo ${godir} | cut -d '/' -f 2)}
2016-11-21 12:48:30 +00:00
ARCHS=${ARCHS:-"linux/amd64 linux/arm darwin/amd64 windows/amd64"}
DEPLOYMENT_TAG=${DEPLOYMENT_TAG:-${VERSION}}
2016-11-21 12:48:30 +00:00
set -ex
2016-11-21 12:48:30 +00:00
# Retrieve dependencies
go get github.com/aktau/github-release
go get github.com/mitchellh/gox
# Test code (used in PR tests, branch tests, and builds)
go vet .
go test .
# Compile program
gox -ldflags="-X main.version=${VERSION}" -osarch="${ARCHS}"
# Publish builds to Github
set +x
if ( test "${VERSION}" == "ghpublish__notags" ); then
2016-11-21 12:48:30 +00:00
echo "No tag present, stopping build now."
exit 0
fi
if [ -z "${GITHUB_TOKEN}" ]; then
echo "Please set \$GITHUB_TOKEN environment variable"
exit 1
fi
set -x
# Generate SHASUMs
sha256sum ${REPO}_* > SHA256SUMS
# Create a drafted release
github-release release --user ${GHUSER} --repo ${REPO} --tag ${DEPLOYMENT_TAG} --name ${DEPLOYMENT_TAG} --draft || true
2016-11-21 12:48:30 +00:00
# Upload build assets
for file in ${REPO}_* SHA256SUMS; do
github-release upload --user ${GHUSER} --repo ${REPO} --tag ${DEPLOYMENT_TAG} --name ${file} --file ${file}
2016-11-21 12:48:30 +00:00
done
echo "\n\n=== Recorded checksums ===\n\n"
cat SHA256SUMS