---
version: 2.1
orbs:
  prometheus: "prometheus/prometheus@0.16.0"
executors:
  # Whenever the Go version is updated here, .promu.yml should also be updated.
  golang:
    docker:
      - image: cimg/go:1.19
jobs:
  test:
    executor: golang
    steps:
      - prometheus/setup_environment
      - run: make
      - prometheus/store_artifact:
          file: pushgateway
workflows:
  version: 2
  pushgateway:
    jobs:
      - test:
          filters:
            tags:
              only: /.*/
      - prometheus/build:
          name: build
          filters:
            tags:
              only: /.*/
      - prometheus/publish_master:
          requires:
            - test
            - build
          filters:
            branches:
              only: master
      - prometheus/publish_release:
          requires:
            - test
            - build
          filters:
            tags:
              only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
            branches:
              ignore: /.*/
