|
|
|
@ -1,6 +1,9 @@
|
|
|
|
|
--- |
|
|
|
|
version: 2.1 |
|
|
|
|
|
|
|
|
|
orbs: |
|
|
|
|
prometheus: prometheus/prometheus@0.1.0 |
|
|
|
|
|
|
|
|
|
executors: |
|
|
|
|
# Whenever the Go version is updated here, .travis.yml and .promu.yml |
|
|
|
|
# should also be updated. |
|
|
|
@ -13,99 +16,17 @@ jobs:
|
|
|
|
|
executor: golang |
|
|
|
|
|
|
|
|
|
steps: |
|
|
|
|
- checkout |
|
|
|
|
- run: make promu |
|
|
|
|
- prometheus/setup_environment |
|
|
|
|
- run: |
|
|
|
|
command: make check_license style unused lint build check_assets |
|
|
|
|
environment: |
|
|
|
|
# Run garbage collection more aggresively to avoid getting OOMed during the lint phase. |
|
|
|
|
GOGC: "20" |
|
|
|
|
- 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: prometheus |
|
|
|
|
destination: /build/prometheus |
|
|
|
|
- store_artifacts: |
|
|
|
|
path: promtool |
|
|
|
|
destination: /build/promtool |
|
|
|
|
- run: rm -v prometheus promtool |
|
|
|
|
|
|
|
|
|
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: |
|
|
|
|
executor: 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: |
|
|
|
|
executor: golang |
|
|
|
|
|
|
|
|
|
steps: |
|
|
|
|
- checkout |
|
|
|
|
- setup_remote_docker: |
|
|
|
|
version: 18.06.0-ce |
|
|
|
|
- run: docker run --privileged linuxkit/binfmt:v0.6 |
|
|
|
|
- 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: prometheus |
|
|
|
|
- prometheus/store_artifact: |
|
|
|
|
file: promtool |
|
|
|
|
|
|
|
|
|
makefile_sync: |
|
|
|
|
executor: golang |
|
|
|
@ -121,11 +42,12 @@ workflows:
|
|
|
|
|
filters: |
|
|
|
|
tags: |
|
|
|
|
only: /.*/ |
|
|
|
|
- build: |
|
|
|
|
- prometheus/build: |
|
|
|
|
name: build |
|
|
|
|
filters: |
|
|
|
|
tags: |
|
|
|
|
only: /.*/ |
|
|
|
|
- docker_hub_master: |
|
|
|
|
- prometheus/publish_master: |
|
|
|
|
context: org-context |
|
|
|
|
requires: |
|
|
|
|
- test |
|
|
|
@ -133,7 +55,7 @@ workflows:
|
|
|
|
|
filters: |
|
|
|
|
branches: |
|
|
|
|
only: master |
|
|
|
|
- docker_hub_release_tags: |
|
|
|
|
- prometheus/publish_release: |
|
|
|
|
context: org-context |
|
|
|
|
requires: |
|
|
|
|
- test |
|
|
|
|