diff --git a/.circleci/config.yml b/.circleci/config.yml index a0f54883..db81d912 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,9 @@ --- version: 2.1 +orbs: + prometheus: prometheus/prometheus@0.1.0 + jobs: test: docker: @@ -29,8 +32,7 @@ jobs: EMAIL_AUTH_CONFIG: /tmp/smtp_auth.yml steps: - - checkout - - run: make promu + - prometheus/setup_environment - run: command: | cat \< $EMAIL_NO_AUTH_CONFIG @@ -51,95 +53,11 @@ jobs: # don't limit this to the number of allocated cores, the job is # likely to get OOMed and killed. GOOPTS: "-p 2" - - run: - command: | - curl -s -L https://github.com/protocolbuffers/protobuf/releases/download/v3.5.1/protoc-3.5.1-linux-x86_64.zip > /tmp/protoc.zip - unzip -d /tmp /tmp/protoc.zip - chmod +x /tmp/bin/protoc - echo 'export PATH=/tmp/bin:$PATH' >> $BASH_ENV - source $BASH_ENV - make proto - - run: git diff --exit-code - - store_artifacts: - path: alertmanager - destination: /build/alertmanager - - store_artifacts: - path: amtool - destination: /build/amtool - - run: rm -v alertmanager amtool - - build: - machine: true - - steps: - - checkout - - run: make promu - - run: promu crossbuild -v - - persist_to_workspace: - root: . - paths: - - .build - - store_artifacts: - path: .build - destination: /build - - docker_hub_master: - docker: - - image: circleci/golang - steps: - - checkout - - setup_remote_docker: - version: 18.06.0-ce - - run: docker run --privileged linuxkit/binfmt:v0.6 - - attach_workspace: - at: . - - 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 - - run: make docker-manifest - - run: make docker-manifest DOCKER_REPO=quay.io/prometheus - - docker_hub_release_tags: - docker: - - image: circleci/golang - steps: - - checkout - - setup_remote_docker: - version: 18.06.0-ce - - run: docker run --privileged linuxkit/binfmt:v0.6 - - 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} - - 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: 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: make docker-publish DOCKER_IMAGE_TAG="$CIRCLE_TAG" - - run: make docker-publish DOCKER_IMAGE_TAG="$CIRCLE_TAG" DOCKER_REPO=quay.io/prometheus - - run: make docker-manifest DOCKER_IMAGE_TAG="$CIRCLE_TAG" - - run: make docker-manifest DOCKER_IMAGE_TAG="$CIRCLE_TAG" DOCKER_REPO=quay.io/prometheus - - 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 - make docker-manifest DOCKER_IMAGE_TAG="latest" - make docker-manifest DOCKER_IMAGE_TAG="latest" DOCKER_REPO=quay.io/prometheus - fi + - prometheus/check_proto + - prometheus/store_artifact: + file: alertmanager + - prometheus/store_artifact: + file: amtool workflows: version: 2 @@ -149,11 +67,12 @@ workflows: filters: tags: only: /.*/ - - build: + - prometheus/build: + name: build filters: tags: only: /.*/ - - docker_hub_master: + - prometheus/publish_master: context: org-context requires: - test @@ -161,7 +80,7 @@ workflows: filters: branches: only: master - - docker_hub_release_tags: + - prometheus/publish_release: context: org-context requires: - test