diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..d891230d --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,60 @@ +version: 2 +jobs: + build: + docker: + - image: circleci/golang:1.12 + working_directory: /go/src/github.com/jesseduffield/lazydocker + 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 "Gopkg.lock" }}-v4 + - 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 -parallel 10 -os "linux freebsd netbsd windows" -osarch "darwin/i386 darwin/amd64" + - save_cache: + key: pkg-cache-{{ checksum "Gopkg.lock" }}-v4 + paths: + - ~/.cache/go-build + + release: + docker: + - image: circleci/golang:1.10 + working_directory: /go/src/github.com/jesseduffield/lazydocker + 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: /.*/ diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 00000000..7c4f1ad5 --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,52 @@ +# This is an example goreleaser.yaml file with some sane defaults. +# Make sure to check the documentation at http://goreleaser.com +builds: + - env: + - CGO_ENABLED=0 + goos: + - freebsd + - windows + - darwin + - linux + goarch: + - amd64 + - arm + - arm64 + - 386 + ldflags: + - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X main.buildSource=binaryRelease + +archive: + replacements: + darwin: Darwin + linux: Linux + windows: Windows + 386: 32-bit + amd64: x86_64 + format_overrides: + - goos: windows + format: zip +checksum: + name_template: 'checksums.txt' +snapshot: + name_template: '{{ .Tag }}-next' +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' + - '^bump' +brew: + # Reporitory to push the tap to. + github: + owner: jesseduffield + name: homebrew-lazydocker + + # Your app's homepage. + # Default is empty. + homepage: 'https://github.com/jesseduffield/lazydocker/' + + # Your app's description. + # Default is empty. + description: 'A simple terminal UI for docker, written in Go'