jobs:
build:
machine: true
+ # This would be for if we didn't have machine: true. Could help with circleci local execute, which doesn't support VMs?
+ # docker:
+ # - image: cimg/go:1.13
environment:
- # PROJECT_GO_PACKAGE: github.com/anacrolix/torrent
- # Should use PROJECT_GO_PACKAGE here but it's not interpolated for this
- # field. https://discuss.circleci.com/t/environment-variable-expansion-in-
- # working-directory/11322/4
- # working_directory: ~/go/src/github.com/anacrolix/torrent
+ GO_BRANCH: release-branch.go1.16
steps:
- # - run: echo $PROJECT_GO_PACKAGE
- run: echo $CIRCLE_WORKING_DIRECTORY
- run: echo $PWD
- run: echo $GOPATH
- run: echo 'export GOPATH=$HOME/go' >> $BASH_ENV
- run: echo 'export PATH="$GOPATH/bin:$PATH"' >> $BASH_ENV
- run: echo $GOPATH
- - run: which go
+ - run: which go || sudo apt install golang-go
- run: go version
- run: |
cd /usr/local
- sudo mkdir go.master
- sudo chown `whoami` go.master
+ sudo mkdir go.local
+ sudo chown `whoami` go.local
- restore_cache:
- key: go-root-
+ key: go-local-
- run: |
cd /usr/local
- git clone git://github.com/golang/go go.master || true
- cd go.master
- git pull
+ git clone git://github.com/golang/go go.local || true
+ cd go.local
+ git fetch
+ git checkout "$GO_BRANCH"
[[ -x bin/go && `git rev-parse HEAD` == `cat anacrolix.built` ]] && exit
cd src
./make.bash || exit
git rev-parse HEAD > ../anacrolix.built
- save_cache:
- paths: /usr/local/go.master
- key: go-root-{{ checksum "/usr/local/go.master/anacrolix.built" }}
- - run: echo 'export PATH="/usr/local/go.master/bin:$PATH"' >> $BASH_ENV
+ paths: /usr/local/go.local
+ key: go-local-{{ checksum "/usr/local/go.local/anacrolix.built" }}
+ - run: echo 'export PATH="/usr/local/go.local/bin:$PATH"' >> $BASH_ENV
- run: go version
- checkout
- run: sudo apt-get update
- run: go test -v -race ./... -count 2
- run: go test -bench . ./...
- run: set +e; CGO_ENABLED=0 go test -v ./...; true
- - run: GO111MODULE=off go get golang.org/x/mobile/cmd/gomobile
- - run: gomobile init
- - run: gomobile build -target=android $PROJECT_GO_PACKAGE
- # - run: GO111MODULE=off go install github.com/anacrolix/godo
- - run: go install ./cmd/torrentfs
+ - run: GOARCH=386 go test ./... -count 2 -bench . || true
+ - run: go install github.com/anacrolix/godo@latest
- save_cache:
key: go-pkg-{{ checksum "go.mod" }}
paths:
key: go-cache-{{ .Revision }}
paths:
- ~/.cache/go-build
- when: always