Merge pull request #164 from jesseduffield/ci-improvements

CI improvements
This commit is contained in:
Dawid Dziurla 2019-09-04 18:19:50 +02:00 committed by GitHub
commit a3b3c94ed2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 60 deletions

View file

@ -1,45 +1,44 @@
version: 2 version: 2
build-shared: &build-shared
steps:
- checkout
- run:
name: Run gofmt -s
command: |
if [ $(find . ! -path "./vendor/*" -name "*.go" -exec gofmt -s -d {} \;|wc -l) -gt 0 ]; then
find . ! -path "./vendor/*" -name "*.go" -exec gofmt -s -d {} \;
exit 1;
fi
- restore_cache:
keys:
- pkg-cache-{{ checksum "go.sum" }}-v5
- run:
name: Run tests
command: |
go test -v -mod=vendor ./...
- run:
name: Compile project on every platform
command: |
go get github.com/mitchellh/gox
gox -mod=vendor -parallel 10 -os "linux freebsd" -osarch "darwin/i386 darwin/amd64"
- save_cache:
key: pkg-cache-{{ checksum "go.sum" }}-v5
paths:
- ~/.cache/go-build
jobs: jobs:
build: "golang:1.12":
<<: *build-shared
docker: docker:
- image: circleci/golang:1.12 - image: circleci/golang:1.12
environment: "golang:latest":
GO111MODULE: "on" <<: *build-shared
working_directory: /go/src/github.com/jesseduffield/lazydocker docker:
steps: - image: circleci/golang:latest
- checkout
- run:
name: Run gofmt -s
command: |
if [ $(find . ! -path "./vendor/*" -name "*.go" -exec gofmt -s -d {} \;|wc -l) -gt 0 ]; then
find . ! -path "./vendor/*" -name "*.go" -exec gofmt -s -d {} \;
exit 1;
fi
- restore_cache:
keys:
- pkg-cache-{{ checksum "go.sum" }}-v5
- run:
name: Run tests
command: |
./test.sh
- run:
name: Push on codecov result
command: |
bash <(curl -s https://codecov.io/bash)
- run:
name: Compile project on every platform
command: |
go get github.com/mitchellh/gox
gox -mod=vendor -parallel 10 -os "linux freebsd" -osarch "darwin/i386 darwin/amd64"
- save_cache:
key: pkg-cache-{{ checksum "go.sum" }}-v5
paths:
- ~/.cache/go-build
release: release:
docker: docker:
- image: circleci/golang:1.12 - image: circleci/golang:1.12
working_directory: /go/src/github.com/jesseduffield/lazydocker
steps: steps:
- checkout - checkout
- run: - run:
@ -69,7 +68,8 @@ workflows:
version: 2 version: 2
build: build:
jobs: jobs:
- build - "golang:1.12"
- "golang:latest"
release: release:
jobs: jobs:
- release: - release:

24
test.sh
View file

@ -1,24 +0,0 @@
#!/usr/bin/env bash
set -e
echo "" > coverage.txt
use_go_test=false
if command -v gotest; then
use_go_test=true
fi
for d in $( find ./* -maxdepth 10 ! -path "./vendor*" ! -path "./.git*" ! -path "./scripts*" -type d); do
if ls $d/*.go &> /dev/null; then
args="-race -coverprofile=profile.out -covermode=atomic $d"
if [ "$use_go_test" == true ]; then
gotest $args
else
go test -mod=vendor $args
fi
if [ -f profile.out ]; then
cat profile.out >> coverage.txt
rm profile.out
fi
fi
done