Add specific build setup for CircleCI

This commit is contained in:
Jakob Borg 2015-09-02 14:02:36 +02:00
parent 6393f69138
commit 70b37dc469
2 changed files with 58 additions and 0 deletions

25
circle.yml Normal file
View File

@ -0,0 +1,25 @@
machine:
environment:
GOROOT: ${HOME}/go1.5
GOARM: 5
GO386: 387
PATH: ${HOME}/go1.5/bin:${PATH}
dependencies:
cache_directories:
- ~/go1.5
override:
# Make sure our desired go version is installed
- ./script/circle-installgo.sh
- go version
test:
override:
# First install latest versions of all dependencies
- go get -v -t -d ./...
# Build the binaries with those
- go build -v ./cmd/...
# And run the tests
- go test -v -short ./...
# Build all packages, using the vendored dependencies.
- ./build.sh all

33
script/circle-installgo.sh Executable file
View File

@ -0,0 +1,33 @@
#!/bin/bash
set -euo pipefail
[ -d ~/go1.5 ] && exit
# Install the version of Go that we want
curl -s https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz \
| tar -C ~ --transform s/go/go1.5/ -zx
# Build the standard library for all our cross compilation targets. We do that
# here so that it gets cached and we don't need to repeat it for every build.
for GOOS in darwin dragonfly solaris; do
export GOOS
export GOARCH=amd64
echo $GOOS $GOARCH
go install std
done
for GOOS in freebsd linux netbsd openbsd windows; do
for GOARCH in amd64 386; do
export GOOS
export GOARCH
echo $GOOS $GOARCH
go install std
done
done
export GOOS=linux
export GOARCH=arm
echo $GOOS $GOARCH
go install std