63 lines
1.1 KiB
Bash
Executable file
63 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
|
|
GO_PROJECT_HOME="/home/ubuntu/.go_workspace/src/${CIRCLE_REPOSITORY_URL/https:\/\//}"
|
|
|
|
dependencies() {
|
|
mkdir -p "${GO_PROJECT_HOME}"
|
|
rsync -a --delete . "${GO_PROJECT_HOME}"
|
|
|
|
cd "${GO_PROJECT_HOME}"
|
|
go get github.com/Masterminds/glide
|
|
glide install
|
|
}
|
|
|
|
build() {
|
|
cd "${GO_PROJECT_HOME}"
|
|
go build
|
|
}
|
|
|
|
test() {
|
|
cd "${GO_PROJECT_HOME}"
|
|
go test $(glide novendor)
|
|
tests/run.sh
|
|
}
|
|
|
|
release() {
|
|
cd "${GO_PROJECT_HOME}"
|
|
mkdir out
|
|
|
|
GOARCH="amd64"
|
|
|
|
for GOOS in linux darwin windows; do
|
|
echo "Building ${GOOS}_${GOARCH}"
|
|
|
|
DIR="${CIRCLE_PROJECT_REPONAME}_${GOOS}_${GOARCH}"
|
|
OUT="out/${DIR}/${CIRCLE_PROJECT_REPONAME}"
|
|
if [ "${GOOS}" = "windows" ]; then
|
|
OUT="${OUT}.exe"
|
|
fi
|
|
|
|
GOOS="${GOOS}" GOARCH="${GOARCH}" go build -o "${OUT}"
|
|
|
|
cd out
|
|
tar -czf "${DIR}.tar.gz" "${DIR}"
|
|
rm -rf "${DIR}"
|
|
cp "${DIR}.tar.gz" "${CIRCLE_ARTIFACTS}"
|
|
cd ..
|
|
done
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
dependencies)
|
|
dependencies;;
|
|
build)
|
|
build;;
|
|
test)
|
|
test;;
|
|
release)
|
|
release;;
|
|
esac
|