--- version: 2.1 orbs: prometheus: prometheus/prometheus@0.4.0 go: circleci/go@0.2.0 win: circleci/windows@2.3.0 executors: # Whenever the Go version is updated here, .promu.yml # should also be updated. golang: docker: - image: circleci/golang:1.13-node fuzzit: docker: - image: fuzzitdev/golang:1.12.7-buster jobs: test: executor: golang steps: - prometheus/setup_environment - go/load-cache: key: v1 - restore_cache: keys: - v1-npm-deps-{{ checksum "web/ui/react-app/yarn.lock" }} - v1-npm-deps- - run: command: make environment: # Run garbage collection more aggressively to avoid getting OOMed during the lint phase. GOGC: "20" # 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" - prometheus/check_proto - prometheus/store_artifact: file: prometheus - prometheus/store_artifact: file: promtool - 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 test_windows: executor: win/default working_directory: /go/src/github.com/prometheus/prometheus steps: - checkout # TSDB is where the most risk is Windows wise, so only test there for now. - run: go test ./tsdb/... 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 makefile_sync: executor: golang steps: - checkout - run: ./scripts/sync_makefiles.sh workflows: version: 2 prometheus: jobs: - test: filters: tags: only: /.*/ - test_windows: filters: tags: only: /.*/ - fuzzit_regression: filters: tags: only: /.*/ - prometheus/build: name: build filters: tags: only: /.*/ - prometheus/publish_master: context: org-context requires: - test - build filters: branches: only: master image: circleci/golang:1-node - prometheus/publish_release: context: org-context requires: - test - build filters: tags: only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/ branches: ignore: /.*/ image: circleci/golang:1-node nightly: triggers: - schedule: cron: "0 0 * * *" filters: branches: only: - master jobs: - makefile_sync: context: org-context - fuzzit_fuzzing: context: org-context