--- defaults: defaults: &defaults working_directory: '/go/src/github.com/influxdata/telegraf' environment: GOFLAGS: -p=8 go-1_12: &go-1_12 docker: - image: 'quay.io/influxdb/telegraf-ci:1.12.14' environment: GO111MODULE: 'on' go-1_13: &go-1_13 docker: - image: 'quay.io/influxdb/telegraf-ci:1.13.5' mac: &mac macos: xcode: 11.3.1 working_directory: '~/go/src/github.com/influxdata/telegraf' environment: HOMEBREW_NO_AUTO_UPDATE: 1 GOFLAGS: -p=8 version: 2 jobs: deps: <<: [ *defaults, *go-1_13 ] steps: - checkout - restore_cache: key: go-mod-v1-{{ checksum "go.sum" }} - run: 'make deps' - run: 'make tidy' - save_cache: name: 'go module cache' key: go-mod-v1-{{ checksum "go.sum" }} paths: - '/go/pkg/mod' - persist_to_workspace: root: '/go' paths: - '*' macdeps: <<: [ *mac ] steps: - checkout - restore_cache: key: mac-go-mod-v1-{{ checksum "go.sum" }} - run: 'brew install go@1.13' - run: 'make deps' - run: 'make tidy' - save_cache: name: 'go module cache' key: mac-go-mod-v1-{{ checksum "go.sum" }} paths: - '~/go/pkg/mod' - '/usr/local/Cellar/go' - '/usr/local/bin/go' - '/usr/local/bin/gofmt' - persist_to_workspace: root: '/' paths: - 'usr/local/bin/go' - 'usr/local/Cellar/go' - 'usr/local/bin/gofmt' - 'Users/distiller/go' test-go-1.12: <<: [ *defaults, *go-1_12 ] steps: - attach_workspace: at: '/go' - run: 'make' - run: 'make check' - run: 'make test' test-go-1.12-386: <<: [ *defaults, *go-1_12 ] steps: - attach_workspace: at: '/go' - run: 'GOARCH=386 make' - run: 'GOARCH=386 make check' - run: 'GOARCH=386 make test' test-go-1.13: <<: [ *defaults, *go-1_13 ] steps: - attach_workspace: at: '/go' - run: 'make' - run: 'make check' - run: 'make test' test-go-1.13-386: <<: [ *defaults, *go-1_13 ] steps: - attach_workspace: at: '/go' - run: 'GOARCH=386 make' - run: 'GOARCH=386 make check' - run: 'GOARCH=386 make test' test-go-1.13-darwin: <<: [ *mac ] steps: - attach_workspace: at: '/' - run: 'make' - run: 'make check' - run: 'make test' package: <<: [ *defaults, *go-1_13 ] steps: - attach_workspace: at: '/go' - run: 'make package' - store_artifacts: path: './build' destination: 'build' release: <<: [ *defaults, *go-1_13 ] steps: - attach_workspace: at: '/go' - run: 'make package-release' - store_artifacts: path: './build' destination: 'build' nightly: <<: [ *defaults, *go-1_13 ] steps: - attach_workspace: at: '/go' - run: 'make package-nightly' - store_artifacts: path: './build' destination: 'build' workflows: version: 2 check: jobs: - 'macdeps': filters: tags: only: /.*/ - 'deps': filters: tags: only: /.*/ - 'test-go-1.12': requires: - 'deps' filters: tags: only: /.*/ - 'test-go-1.12-386': requires: - 'deps' filters: tags: only: /.*/ - 'test-go-1.13': requires: - 'deps' filters: tags: only: /.*/ - 'test-go-1.13-386': requires: - 'deps' filters: tags: only: /.*/ - 'test-go-1.13-darwin': requires: - 'macdeps' filters: tags: # only runs on tags if you specify this filter only: /.*/ - 'package': requires: - 'test-go-1.12' - 'test-go-1.12-386' - 'test-go-1.13' - 'test-go-1.13-386' - 'release': requires: - 'test-go-1.12' - 'test-go-1.12-386' - 'test-go-1.13' - 'test-go-1.13-386' filters: tags: only: /.*/ branches: ignore: /.*/ nightly: jobs: - 'deps' - 'test-go-1.12': requires: - 'deps' - 'test-go-1.12-386': requires: - 'deps' - 'test-go-1.13': requires: - 'deps' - 'test-go-1.13-386': requires: - 'deps' - 'nightly': requires: - 'test-go-1.12' - 'test-go-1.12-386' - 'test-go-1.13' - 'test-go-1.13-386' triggers: - schedule: cron: "0 7 * * *" filters: branches: only: - master