319 lines
7.8 KiB
YAML
319 lines
7.8 KiB
YAML
version: 2.1
|
|
orbs:
|
|
win: circleci/windows@2.4.0
|
|
aws-cli: circleci/aws-cli@1.4.0
|
|
|
|
executors:
|
|
go-1_15:
|
|
working_directory: '/go/src/github.com/influxdata/telegraf'
|
|
docker:
|
|
- image: 'quay.io/influxdb/telegraf-ci:1.15.8'
|
|
environment:
|
|
GOFLAGS: -p=8
|
|
go-1_16:
|
|
working_directory: '/go/src/github.com/influxdata/telegraf'
|
|
docker:
|
|
- image: 'quay.io/influxdb/telegraf-ci:1.16.2'
|
|
environment:
|
|
GOFLAGS: -p=8
|
|
mac:
|
|
macos:
|
|
xcode: 12.4.0
|
|
working_directory: '~/go/src/github.com/influxdata/telegraf'
|
|
environment:
|
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
|
GOFLAGS: -p=8
|
|
|
|
commands:
|
|
check-changed-files-or-halt:
|
|
steps:
|
|
- run: git diff master --name-only --no-color | egrep -e "^(\.circleci\/.*)|(.*\.(go|mod|sum))|Makefile$" || circleci step halt
|
|
check-changed-files-or-halt-windows:
|
|
steps:
|
|
- run:
|
|
command: git diff master --name-only --no-color | egrep -e "^(\.circleci\/.*)|(.*\.(go|mod|sum))|Makefile$" || circleci step halt
|
|
shell: bash.exe
|
|
test-go:
|
|
parameters:
|
|
goarch:
|
|
type: string
|
|
default: "amd64"
|
|
steps:
|
|
- checkout
|
|
- check-changed-files-or-halt
|
|
- 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'
|
|
package:
|
|
parameters:
|
|
nightly:
|
|
type: boolean
|
|
default: false
|
|
steps:
|
|
- checkout
|
|
- check-changed-files-or-halt
|
|
- 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'
|
|
- persist_to_workspace:
|
|
root: './build'
|
|
paths:
|
|
- 'dist'
|
|
jobs:
|
|
deps:
|
|
executor: go-1_16
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: go-mod-v1-{{ checksum "go.sum" }}
|
|
- check-changed-files-or-halt
|
|
- 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:
|
|
- '*'
|
|
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-1_16:
|
|
executor: go-1_16
|
|
steps:
|
|
- test-go
|
|
test-go-1_16-386:
|
|
executor: go-1_16
|
|
steps:
|
|
- test-go:
|
|
goarch: "386"
|
|
test-go-mac:
|
|
executor: mac
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: mac-go-mod-v0-{{ checksum "go.sum" }}
|
|
- check-changed-files-or-halt
|
|
- run: 'sh ./scripts/mac_installgo.sh'
|
|
- save_cache:
|
|
name: 'Saving cache'
|
|
key: mac-go-mod-v0-{{ checksum "go.sum" }}
|
|
paths:
|
|
- '/usr/local/Cellar/go'
|
|
- '/usr/local/bin/go'
|
|
- '/usr/local/bin/gofmt'
|
|
- run: 'make deps'
|
|
- run: 'make tidy'
|
|
- run: 'make'
|
|
- run: 'make check'
|
|
- run: 'make test'
|
|
test-go-windows:
|
|
executor:
|
|
name: win/default
|
|
shell: powershell.exe
|
|
steps:
|
|
- checkout
|
|
- check-changed-files-or-halt-windows
|
|
- run: choco upgrade golang --version=1.16.2
|
|
- run: choco install make
|
|
- run: git config --system core.longpaths true
|
|
- run: make test-windows
|
|
|
|
package:
|
|
executor: go-1_16
|
|
steps:
|
|
- package
|
|
release:
|
|
executor: go-1_16
|
|
steps:
|
|
- package
|
|
nightly:
|
|
executor: go-1_16
|
|
steps:
|
|
- package:
|
|
nightly: true
|
|
package-sign-windows:
|
|
executor:
|
|
name: win/default
|
|
shell: powershell.exe
|
|
steps:
|
|
- checkout
|
|
- check-changed-files-or-halt
|
|
- attach_workspace:
|
|
at: '/build'
|
|
- run:
|
|
name: "Sign Windows Executables"
|
|
shell: powershell.exe
|
|
command: |
|
|
./scripts/windows-signing.ps1
|
|
- persist_to_workspace:
|
|
root: './build'
|
|
paths:
|
|
- 'dist'
|
|
- store_artifacts:
|
|
path: './build/dist'
|
|
destination: 'build/dist'
|
|
package-sign-mac:
|
|
macos:
|
|
xcode: "11.3"
|
|
working_directory: /Users/distiller/project
|
|
environment:
|
|
FL_OUTPUT_DIR: output
|
|
FASTLANE_LANE: test
|
|
shell: /bin/bash --login -o pipefail
|
|
steps:
|
|
- checkout
|
|
- check-changed-files-or-halt
|
|
- attach_workspace:
|
|
at: '.'
|
|
- run:
|
|
command: |
|
|
sh ./scripts/mac-signing.sh
|
|
- store_artifacts:
|
|
path: './dist'
|
|
destination: 'build/dist'
|
|
share-artifacts:
|
|
executor: aws-cli/default
|
|
steps:
|
|
- run:
|
|
command: |
|
|
PR=${CIRCLE_PULL_REQUEST##*/}
|
|
printf -v payload '{ "pullRequestNumber": "%s" }' "$PR"
|
|
curl -X POST "https://182c7jdgog.execute-api.us-east-1.amazonaws.com/prod/shareArtifacts" --data "$payload"
|
|
|
|
workflows:
|
|
version: 2
|
|
check:
|
|
jobs:
|
|
- '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-1_16':
|
|
requires:
|
|
- 'deps'
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- 'test-go-1_16-386':
|
|
requires:
|
|
- 'deps'
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- 'test-go-mac':
|
|
filters:
|
|
tags: # only runs on tags if you specify this filter
|
|
only: /.*/
|
|
- 'test-go-windows':
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- 'package':
|
|
requires:
|
|
- 'test-go-windows'
|
|
- 'test-go-mac'
|
|
- 'test-go-1_15'
|
|
- 'test-go-1_15-386'
|
|
- 'test-go-1_16'
|
|
- 'test-go-1_16-386'
|
|
- 'share-artifacts':
|
|
requires:
|
|
- 'package'
|
|
filters:
|
|
branches:
|
|
ignore:
|
|
- master
|
|
- 'release':
|
|
requires:
|
|
- 'test-go-windows'
|
|
- 'test-go-mac'
|
|
- 'test-go-1_15'
|
|
- 'test-go-1_15-386'
|
|
- 'test-go-1_16'
|
|
- 'test-go-1_16-386'
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
branches:
|
|
ignore: /.*/
|
|
- 'package-sign-windows':
|
|
requires:
|
|
- 'release'
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
- 'package-sign-mac':
|
|
requires:
|
|
- 'package-sign-windows'
|
|
filters:
|
|
tags:
|
|
only: /.*/
|
|
nightly:
|
|
jobs:
|
|
- 'deps'
|
|
- 'test-go-1_15':
|
|
requires:
|
|
- 'deps'
|
|
- 'test-go-1_15-386':
|
|
requires:
|
|
- 'deps'
|
|
- 'test-go-1_16':
|
|
requires:
|
|
- 'deps'
|
|
- 'test-go-1_16-386':
|
|
requires:
|
|
- 'deps'
|
|
- 'test-go-mac'
|
|
- 'test-go-windows'
|
|
- 'nightly':
|
|
requires:
|
|
- 'test-go-windows'
|
|
- 'test-go-mac'
|
|
- 'test-go-1_15'
|
|
- 'test-go-1_15-386'
|
|
- 'test-go-1_16'
|
|
- 'test-go-1_16-386'
|
|
triggers:
|
|
- schedule:
|
|
cron: "0 7 * * *"
|
|
filters:
|
|
branches:
|
|
only:
|
|
- master
|