From d4b237308a4070870bbca2f421bd2ae0fb6487ef Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Wed, 4 Sep 2019 17:41:02 +0200 Subject: [PATCH 1/2] ci: improvements - delete codecov stuff - run simple go test - no working directory - no environment variables - test on circleci/golang:latest too - remove test.sh file --- .circleci/config.yml | 11 ++--------- test.sh | 24 ------------------------ 2 files changed, 2 insertions(+), 33 deletions(-) delete mode 100755 test.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index a72b9e33..e737a3c2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,9 +3,7 @@ jobs: build: docker: - image: circleci/golang:1.12 - environment: - GO111MODULE: "on" - working_directory: /go/src/github.com/jesseduffield/lazydocker + - image: circleci/golang:latest steps: - checkout - run: @@ -21,11 +19,7 @@ jobs: - run: name: Run tests command: | - ./test.sh - - run: - name: Push on codecov result - command: | - bash <(curl -s https://codecov.io/bash) + go test -v -mod=vendor ./... - run: name: Compile project on every platform command: | @@ -39,7 +33,6 @@ jobs: release: docker: - image: circleci/golang:1.12 - working_directory: /go/src/github.com/jesseduffield/lazydocker steps: - checkout - run: diff --git a/test.sh b/test.sh deleted file mode 100755 index 7e5a7128..00000000 --- a/test.sh +++ /dev/null @@ -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 From 139d991f45fda714cb4f5fc801b6efe42d4aac65 Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Wed, 4 Sep 2019 18:14:39 +0200 Subject: [PATCH 2/2] ci: proper build matrix using workflows reference: https://discuss.circleci.com/t/build-matrix-configuration/14448 --- .circleci/config.yml | 63 ++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e737a3c2..75d3ccaf 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,35 +1,41 @@ 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: - build: + "golang:1.12": + <<: *build-shared docker: - image: circleci/golang:1.12 + "golang:latest": + <<: *build-shared + docker: - image: circleci/golang:latest - 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 - release: docker: - image: circleci/golang:1.12 @@ -62,7 +68,8 @@ workflows: version: 2 build: jobs: - - build + - "golang:1.12" + - "golang:latest" release: jobs: - release: