2018-04-21 05:35:53 +00:00
---
2018-10-09 12:24:36 +00:00
version : 2.1
2018-04-21 05:35:53 +00:00
2019-07-15 07:41:28 +00:00
orbs :
2020-01-13 13:54:07 +00:00
prometheus : prometheus/prometheus@0.4.0
2019-10-24 08:43:22 +00:00
go : circleci/go@0.2.0
2020-01-04 14:55:02 +00:00
win : circleci/windows@2.3.0
2019-07-15 07:41:28 +00:00
2018-10-16 07:41:45 +00:00
executors :
2019-11-25 13:59:26 +00:00
# Whenever the Go version is updated here, .promu.yml
2018-10-16 07:41:45 +00:00
# should also be updated.
golang :
2018-04-21 05:35:53 +00:00
docker :
2020-04-13 12:55:35 +00:00
- image : circleci/golang:1.14-node
2018-10-16 07:41:45 +00:00
2019-08-21 08:43:53 +00:00
fuzzit :
docker :
- image : fuzzitdev/golang:1.12.7-buster
2018-10-16 07:41:45 +00:00
jobs :
test :
executor : golang
2018-04-21 05:35:53 +00:00
steps :
2019-07-15 07:41:28 +00:00
- prometheus/setup_environment
2019-10-24 08:43:22 +00:00
- go/load-cache :
key : v1
- restore_cache :
keys :
- v1-npm-deps-{{ checksum "web/ui/react-app/yarn.lock" }}
- v1-npm-deps-
2019-05-03 13:11:28 +00:00
- run :
2019-07-15 09:20:08 +00:00
command : make
2019-05-03 13:11:28 +00:00
environment :
2019-09-30 15:54:55 +00:00
# Run garbage collection more aggressively to avoid getting OOMed during the lint phase.
2019-05-03 13:11:28 +00:00
GOGC : "20"
2019-07-15 09:20:08 +00:00
# By default Go uses GOMAXPROCS but a Circle CI executor has many
# cores (> 30) while the CPU and RAM resources are throttled. If we
# don't limit this to the number of allocated cores, the job is
# likely to get OOMed and killed.
GOOPTS : "-p 2"
2020-01-19 21:56:13 +00:00
GOMAXPROCS : "2"
2020-02-17 21:13:33 +00:00
- prometheus/check_proto :
version : "3.11.4"
2019-07-15 07:41:28 +00:00
- prometheus/store_artifact :
file : prometheus
- prometheus/store_artifact :
file : promtool
2019-10-24 08:43:22 +00:00
- go/save-cache :
key : v1
- save_cache :
key : v1-npm-deps-{{ checksum "web/ui/react-app/yarn.lock" }}
paths :
- web/ui/react-app/node_modules
2020-02-24 10:50:05 +00:00
- store_test_results :
path : test-results
2020-01-04 14:55:02 +00:00
test_windows :
executor : win/default
working_directory : /go/src/github.com/prometheus/prometheus
steps :
- checkout
2020-06-01 06:45:30 +00:00
- run :
# Temporary workaround until circleci updates go.
shell : bash
command : |
choco upgrade -y golang
2020-01-20 13:17:11 +00:00
- run :
shell : bash
command : |
(cd web/ui && GOOS= GOARCH= go generate -mod=vendor)
2020-06-01 06:45:30 +00:00
go test -mod=vendor -vet=off -test.v `go list ./...|grep -Exv "(github.com/prometheus/prometheus/discovery.*|github.com/prometheus/prometheus/config|github.com/prometheus/prometheus/web)"`
2020-01-20 13:17:11 +00:00
environment :
GOGC : "20"
GOOPTS : "-p 2 -mod=vendor"
2019-08-21 08:43:53 +00:00
fuzzit_regression :
executor : fuzzit
working_directory : /go/src/github.com/prometheus/prometheus
steps :
- checkout
- setup_remote_docker
- run : ./fuzzit.sh local-regression
fuzzit_fuzzing :
executor : fuzzit
working_directory : /go/src/github.com/prometheus/prometheus
steps :
- checkout
- setup_remote_docker
- run : ./fuzzit.sh fuzzing
2018-04-21 05:35:53 +00:00
2020-06-17 14:51:32 +00:00
repo_sync :
2019-04-11 12:31:04 +00:00
executor : golang
steps :
- checkout
2020-06-17 14:51:32 +00:00
- run : ./scripts/sync_repo_files.sh
2019-04-11 12:31:04 +00:00
2018-04-21 05:35:53 +00:00
workflows :
version : 2
prometheus :
jobs :
- test :
filters :
tags :
only : /.*/
2020-01-04 14:55:02 +00:00
- test_windows :
filters :
tags :
only : /.*/
2019-08-21 08:43:53 +00:00
- fuzzit_regression :
filters :
tags :
only : /.*/
2019-07-15 07:41:28 +00:00
- prometheus/build :
name : build
2018-04-21 05:35:53 +00:00
filters :
tags :
only : /.*/
2019-07-15 07:41:28 +00:00
- prometheus/publish_master :
2019-05-29 08:02:30 +00:00
context : org-context
2018-04-21 05:35:53 +00:00
requires :
- test
- build
filters :
branches :
only : master
2019-10-18 14:08:26 +00:00
image : circleci/golang:1-node
2019-07-15 07:41:28 +00:00
- prometheus/publish_release :
2019-05-29 08:02:30 +00:00
context : org-context
2018-04-21 05:35:53 +00:00
requires :
- test
- build
filters :
tags :
only : /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
branches :
ignore : /.*/
2019-10-18 14:08:26 +00:00
image : circleci/golang:1-node
2019-04-11 12:31:04 +00:00
nightly :
triggers :
- schedule :
cron : "0 0 * * *"
filters :
branches :
only :
- master
jobs :
2020-06-17 14:51:32 +00:00
- repo_sync :
2019-05-29 08:02:30 +00:00
context : org-context
2019-08-21 08:43:53 +00:00
- fuzzit_fuzzing :
context : org-context