telegraf/.circleci/config.yml

241 lines
5.3 KiB
YAML

version: 2.1
executors:
go-1_14:
working_directory: '/go/src/github.com/influxdata/telegraf'
docker:
- image: 'quay.io/influxdb/telegraf-ci:1.14.9'
environment:
GOFLAGS: -p=8
go-1_15:
working_directory: '/go/src/github.com/influxdata/telegraf'
docker:
- image: 'quay.io/influxdb/telegraf-ci:1.15.5'
environment:
GOFLAGS: -p=8
mac:
macos:
xcode: 12.1.0
working_directory: '~/go/src/github.com/influxdata/telegraf'
environment:
HOMEBREW_NO_AUTO_UPDATE: 1
GOFLAGS: -p=8
commands:
test-go:
parameters:
goarch:
type: string
default: "amd64"
steps:
- checkout
- attach_workspace:
at: '/go'
- run: 'GOARCH=<< parameters.goarch >> make'
- run: 'GOARCH=<< parameters.goarch >> make check'
- run: 'GOARCH=<< parameters.goarch >> make check-deps'
- run: 'GOARCH=<< parameters.goarch >> make test'
test-go-mac:
steps:
- checkout
- attach_workspace:
at: '/'
- run: 'make'
- run: 'make check'
- run: 'make test'
package:
parameters:
nightly:
type: boolean
default: false
steps:
- checkout
- attach_workspace:
at: '/go'
- when:
condition: << parameters.nightly >>
steps:
- run: 'NIGHTLY=1 make package'
- run: 'make upload-nightly'
- unless:
condition: << parameters.nightly >>
steps:
- run: 'make package'
- store_artifacts:
path: './build/dist'
destination: 'build/dist'
jobs:
deps:
executor: go-1_15
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:
executor: mac
steps:
- checkout
- restore_cache:
key: mac-go-mod-v2-{{ checksum "go.sum" }}
- run: 'brew install go' # latest
- run: 'make deps'
- run: 'make tidy'
- save_cache:
name: 'go module cache'
key: mac-go-mod-v2-{{ 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_14:
executor: go-1_14
steps:
- test-go
test-go-1_14-386:
executor: go-1_14
steps:
- test-go:
goarch: "386"
test-go-1_15:
executor: go-1_15
steps:
- test-go
test-go-1_15-386:
executor: go-1_15
steps:
- test-go:
goarch: "386"
test-go-darwin:
executor: mac
steps:
- test-go-mac
package:
executor: go-1_15
steps:
- package
release:
executor: go-1_15
steps:
- package
nightly:
executor: go-1_15
steps:
- package:
nightly: true
workflows:
version: 2
check:
jobs:
- 'macdeps':
filters:
tags:
only: /.*/
- 'deps':
filters:
tags:
only: /.*/
- 'test-go-1_14':
requires:
- 'deps'
filters:
tags:
only: /.*/
- 'test-go-1_14-386':
requires:
- 'deps'
filters:
tags:
only: /.*/
- 'test-go-1_15':
requires:
- 'deps'
filters:
tags:
only: /.*/
- 'test-go-1_15-386':
requires:
- 'deps'
filters:
tags:
only: /.*/
- 'test-go-darwin':
requires:
- 'macdeps'
filters:
tags: # only runs on tags if you specify this filter
only: /.*/
- 'package':
requires:
- 'test-go-darwin'
- 'test-go-1_14'
- 'test-go-1_14-386'
- 'test-go-1_15'
- 'test-go-1_15-386'
- 'release':
requires:
- 'test-go-darwin'
- 'test-go-1_14'
- 'test-go-1_14-386'
- 'test-go-1_15'
- 'test-go-1_15-386'
filters:
tags:
only: /.*/
branches:
ignore: /.*/
nightly:
jobs:
- 'deps'
- 'macdeps'
- 'test-go-1_14':
requires:
- 'deps'
- 'test-go-1_14-386':
requires:
- 'deps'
- 'test-go-1_15':
requires:
- 'deps'
- 'test-go-1_15-386':
requires:
- 'deps'
- 'test-go-darwin':
requires:
- 'macdeps'
- 'nightly':
requires:
- 'test-go-darwin'
- 'test-go-1_14'
- 'test-go-1_14-386'
- 'test-go-1_15'
- 'test-go-1_15-386'
triggers:
- schedule:
cron: "0 7 * * *"
filters:
branches:
only:
- master