diff --git a/.circleci/config.yml b/.circleci/config.yml index c5f520b70..939adc60e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,26 +1,43 @@ -# Golang CircleCI 2.0 configuration file -# -# Check https://circleci.com/docs/2.0/language-go/ for more details version: 2 jobs: build: docker: - # specify the version - - image: circleci/golang:1.9 + - image: circleci/golang:1.10 - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/postgres:9.4 - - #### TEMPLATE_NOTE: go expects specific checkout path representing url - #### expecting it in the form of - #### /go/src/github.com/circleci/go-tool - #### /go/src/bitbucket.org/circleci/go-tool working_directory: /go/src/github.com/jesseduffield/lazygit steps: - checkout + - run: + name: Run tests + command: | + ./test.sh + - run: + name: Push on codecov result + command: | + bash <(curl -s https://codecov.io/bash) - # specify any bash command here prefixed with `run: ` - - run: go test -v ./... - - run: bash <(curl -s https://codecov.io/bash) + release: + docker: + - image: circleci/golang:1.10 + working_directory: /go/src/github.com/jesseduffield/lazygit + steps: + - checkout + - run: + name: Run gorelease + command: | + curl -sL https://git.io/goreleaser | bash + +workflows: + version: 2 + build: + jobs: + - build + release: + jobs: + - release: + context: org-global + filters: + tags: + only: /v[0-9]+(\.[0-9]+)*/ + branches: + ignore: /.*/ diff --git a/.gitignore b/.gitignore index 304a2356f..f759e8a06 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ TODO.md # Tests test/repos/repo +coverage.txt # Binaries -lazygit \ No newline at end of file +lazygit diff --git a/test.sh b/test.sh new file mode 100755 index 000000000..a92243cf7 --- /dev/null +++ b/test.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -e +echo "" > coverage.txt + +for d in $( find ./* -maxdepth 10 ! -path "./vendor*" ! -path "./.git*" -type d); do + if ls $d/*.go &> /dev/null; then + go test -v -race -coverprofile=profile.out -covermode=atomic $d + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi + fi +done