version: 2 jobs: build: docker: - image: circleci/golang:1.11 working_directory: /go/src/github.com/jesseduffield/lazygit steps: - checkout - run: name: Ensure go.mod file is up to date command: | export GO111MODULE=on rm go.sum mv go.mod /tmp/ go mod init export GO111MODULE=auto if [ $(diff /tmp/go.mod go.mod|wc -l) -gt 0 ]; then diff /tmp/go.mod go.mod exit 1; fi - 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 "Gopkg.lock" }}-v3 - run: name: Run tests command: | ./test.sh - run: name: Compile project on every platform command: | go get github.com/mitchellh/gox gox -parallel 10 -os "linux freebsd netbsd windows" -osarch "darwin/i386 darwin/amd64" - run: name: Push on codecov result command: | bash <(curl -s https://codecov.io/bash) - save_cache: key: pkg-cache-{{ checksum "Gopkg.lock" }}-v3 paths: - ~/.cache/go-build 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: filters: tags: only: /v[0-9]+(\.[0-9]+)*/ branches: ignore: /.*/