--- /dev/null
+---
+version: 2
+
+jobs:
+ # IPv6 tests require the machine executor.
+ # See https://circleci.com/docs/2.0/faq/#can-i-use-ipv6-in-my-tests for details.
+ test:
+ machine: true
+ working_directory: /home/circleci/.go_workspace/src/github.com/prometheus/blackbox_exporter
+ environment:
+ DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.10-base
+
+ steps:
+ - checkout
+ - run:
+ name: enable ipv6
+ command: |
+ cat <<'EOF' | sudo tee /etc/docker/daemon.json
+ {
+ "ipv6": true,
+ "fixed-cidr-v6": "2001:db8:1::/64"
+ }
+ EOF
+ 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
+
+ docker_hub_master:
+ docker:
+ - image: circleci/golang:1.10
+ working_directory: /go/src/github.com/prometheus/blackbox_exporter
+
+ environment:
+ DOCKER_IMAGE_NAME: prom/blackbox-exporter
+ QUAY_IMAGE_NAME: quay.io/prometheus/blackbox-exporter
+
+ steps:
+ - checkout
+ - setup_remote_docker
+ - attach_workspace:
+ at: .
+ - run: ln -s .build/linux-amd64/blackbox_exporter blackbox_exporter
+ - run: make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME
+ - run: make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME
+ - run: docker images
+ - run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
+ - run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
+ - run: docker push $DOCKER_IMAGE_NAME
+ - run: docker push $QUAY_IMAGE_NAME
+
+ docker_hub_release_tags:
+ docker:
+ - image: circleci/golang:1.10
+ working_directory: /go/src/github.com/prometheus/blackbox_exporter
+
+ environment:
+ DOCKER_IMAGE_NAME: prom/blackbox-exporter
+ QUAY_IMAGE_NAME: quay.io/prometheus/blackbox-exporter
+
+ steps:
+ - checkout
+ - setup_remote_docker
+ - run: mkdir -v -p ${HOME}/bin
+ - run: curl -L 'https://github.com/aktau/github-release/releases/download/v0.7.2/linux-amd64-github-release.tar.bz2' | tar xvjf - --strip-components 3 -C ${HOME}/bin
+ - run: echo 'export PATH=${HOME}/bin:${PATH}' >> ${BASH_ENV}
+ - 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_NAME=$DOCKER_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
+ - run: make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
+ - 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
+ docker tag "$DOCKER_IMAGE_NAME:$CIRCLE_TAG" "$DOCKER_IMAGE_NAME:latest"
+ docker tag "$QUAY_IMAGE_NAME:$CIRCLE_TAG" "$QUAY_IMAGE_NAME:latest"
+ fi
+ - run: docker push $DOCKER_IMAGE_NAME
+ - run: docker push $QUAY_IMAGE_NAME
+
+workflows:
+ version: 2
+ blackbox_exporter:
+ jobs:
+ - test:
+ filters:
+ tags:
+ only: /.*/
+ - build:
+ filters:
+ tags:
+ only: /.*/
+ - docker_hub_master:
+ requires:
+ - test
+ - build
+ filters:
+ branches:
+ only: master
+ - docker_hub_release_tags:
+ requires:
+ - test
+ - build
+ filters:
+ tags:
+ only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
+ branches:
+ ignore: /.*/
+
+++ /dev/null
-machine:
- environment:
- DOCKER_IMAGE_NAME: prom/blackbox-exporter
- QUAY_IMAGE_NAME: quay.io/prometheus/blackbox-exporter
- DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.10-base
- REPO_PATH: github.com/prometheus/blackbox_exporter
- pre:
- - sudo curl -L -o /usr/bin/docker 'https://s3-external-1.amazonaws.com/circle-downloads/docker-1.9.1-circleci'
- - sudo chmod 0755 /usr/bin/docker
- - sudo curl -L 'https://github.com/aktau/github-release/releases/download/v0.6.2/linux-amd64-github-release.tar.bz2' | tar xvjf - --strip-components 3 -C $HOME/bin
- services:
- - docker
-
-dependencies:
- pre:
- - make promu
- - docker info
- override:
- - promu crossbuild
- - ln -s .build/linux-amd64/blackbox_exporter blackbox_exporter
- - |
- if [ -n "$CIRCLE_TAG" ]; then
- make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
- make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
- else
- make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME
- make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME
- fi
- post:
- - mkdir $CIRCLE_ARTIFACTS/binaries/ && cp -a .build/* $CIRCLE_ARTIFACTS/binaries/
- - docker images
-
-test:
- override:
- - docker run --rm -t -v "$(pwd):/app" "${DOCKER_TEST_IMAGE_NAME}" -i "${REPO_PATH}" -T
-
-deployment:
- hub_branch:
- branch: master
- owner: prometheus
- commands:
- - docker login -e $DOCKER_EMAIL -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- - docker login -e $QUAY_EMAIL -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
- - docker push $DOCKER_IMAGE_NAME
- - docker push $QUAY_IMAGE_NAME
- hub_tag:
- tag: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
- owner: prometheus
- commands:
- - promu crossbuild tarballs
- - promu checksum .tarballs
- - promu release .tarballs
- - mkdir $CIRCLE_ARTIFACTS/releases/ && cp -a .tarballs/* $CIRCLE_ARTIFACTS/releases/
- - docker login -e $DOCKER_EMAIL -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- - docker login -e $QUAY_EMAIL -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
- - |
- if [[ "$CIRCLE_TAG" =~ ^v[0-9]+(\.[0-9]+){2}$ ]]; then
- docker tag "$DOCKER_IMAGE_NAME:$CIRCLE_TAG" "$DOCKER_IMAGE_NAME:latest"
- docker tag "$QUAY_IMAGE_NAME:$CIRCLE_TAG" "$QUAY_IMAGE_NAME:latest"
- fi
- - docker push $DOCKER_IMAGE_NAME
- - docker push $QUAY_IMAGE_NAME