---
version: 2.1
-executors:
- # Whenever the Go version is updated here, .travis.yml and .promu.yml
- # should also be updated.
- golang:
- docker:
- - image: circleci/golang:1.12
+orbs:
+ prometheus: prometheus/prometheus@0.1.0
jobs:
# IPv6 tests require the machine executor.
test:
machine: true
working_directory: /home/circleci/.go_workspace/src/github.com/prometheus/blackbox_exporter
+ # Whenever the Go version is updated here, .travis.yml and .promu.yml
+ # should also be updated.
environment:
- DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.11-base
+ DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.12-base
steps:
- checkout
sudo service docker restart
- run: docker run --rm -t -v "$(pwd):/app" "${DOCKER_TEST_IMAGE_NAME}" -i github.com/prometheus/blackbox_exporter -T
- build:
- machine: true
- working_directory: /home/circleci/.go_workspace/src/github.com/prometheus/blackbox_exporter
-
- steps:
- - checkout
- - run: make promu
- - run: promu crossbuild -v
- - persist_to_workspace:
- root: .
- paths:
- - .build
- - store_artifacts:
- path: .build
- destination: /build
-
- docker_hub_master:
- executor: golang
-
- steps:
- - checkout
- - setup_remote_docker
- - attach_workspace:
- at: .
- - run: ln -s .build/linux-amd64/blackbox_exporter blackbox_exporter
- - run: make docker
- - run: make docker DOCKER_REPO=quay.io/prometheus
- - run: docker images
- - run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- - run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
- - run: make docker-publish
- - run: make docker-publish DOCKER_REPO=quay.io/prometheus
-
- docker_hub_release_tags:
- executor: golang
-
- steps:
- - checkout
- - setup_remote_docker
- - attach_workspace:
- at: .
- - run: make promu
- - run: promu crossbuild tarballs
- - run: promu checksum .tarballs
- - run: promu release .tarballs
- - store_artifacts:
- path: .tarballs
- destination: releases
- - run: ln -s .build/linux-amd64/blackbox_exporter blackbox_exporter
- - run: make docker DOCKER_IMAGE_TAG=$CIRCLE_TAG
- - run: make docker DOCKER_IMAGE_TAG=$CIRCLE_TAG DOCKER_REPO=quay.io/prometheus
- - run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- - run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
- - run: |
- if [[ "$CIRCLE_TAG" =~ ^v[0-9]+(\.[0-9]+){2}$ ]]; then
- make docker-tag-latest DOCKER_IMAGE_TAG="$CIRCLE_TAG"
- make docker-tag-latest DOCKER_IMAGE_TAG="$CIRCLE_TAG" DOCKER_REPO=quay.io/prometheus
- make docker-publish DOCKER_IMAGE_TAG="latest"
- make docker-publish DOCKER_IMAGE_TAG="latest" DOCKER_REPO=quay.io/prometheus
- fi
- - run: make docker-publish DOCKER_IMAGE_TAG="$CIRCLE_TAG"
- - run: make docker-publish DOCKER_REPO=quay.io/prometheus DOCKER_IMAGE_TAG="$CIRCLE_TAG"
-
workflows:
version: 2
blackbox_exporter:
filters:
tags:
only: /.*/
- - build:
+ - prometheus/build:
+ name: build
filters:
tags:
only: /.*/
- - docker_hub_master:
+ - prometheus/publish_master:
context: org-context
requires:
- test
filters:
branches:
only: master
- - docker_hub_release_tags:
+ - prometheus/publish_release:
context: org-context
requires:
- test