aboutsummaryrefslogtreecommitdiff
path: root/.circleci
diff options
context:
space:
mode:
authorBen Kochie <superq@gmail.com>2018-03-08 12:43:49 +0100
committerGitHub <noreply@github.com>2018-03-08 12:43:49 +0100
commit65e485c4e926083c8cb4baf36a8d80d16a963421 (patch)
tree489f26fcae75c366888feafc85c9267c501f680f /.circleci
parent098f975b4875fc065acc377e9e32e04a246a457e (diff)
downloadprometheus_node_collector-65e485c4e926083c8cb4baf36a8d80d16a963421.tar.bz2
prometheus_node_collector-65e485c4e926083c8cb4baf36a8d80d16a963421.tar.xz
prometheus_node_collector-65e485c4e926083c8cb4baf36a8d80d16a963421.zip
Convert circleci config to 2.0. (#844)
Diffstat (limited to '.circleci')
-rw-r--r--.circleci/config.yml146
1 files changed, 146 insertions, 0 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000..edea5d2
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,146 @@
1---
2version: 2
3
4jobs:
5 test:
6 docker:
7 - image: circleci/golang:1.10
8 working_directory: /go/src/github.com/prometheus/node_exporter
9
10 steps:
11 - checkout
12 - run: make promu
13 - run: make
14 - run: rm -v node_exporter
15
16 build:
17 machine: true
18 working_directory: /home/circleci/.go_workspace/src/github.com/prometheus/node_exporter
19
20 environment:
21 DOCKER_IMAGE_NAME: prom/node-exporter
22 QUAY_IMAGE_NAME: quay.io/prometheus/node-exporter
23 DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.10-base
24 REPO_PATH: github.com/prometheus/node_exporter
25
26 steps:
27 - checkout
28 - run: make promu
29 - run: promu crossbuild -v
30 - persist_to_workspace:
31 root: .
32 paths:
33 - .build
34 - run: ln -s .build/linux-amd64/node_exporter node_exporter
35 - run:
36 command: |
37 if [ -n "$CIRCLE_TAG" ]; then
38 make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
39 make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
40 else
41 make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME
42 make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME
43 fi
44 - run: docker images
45 - run: docker run --rm -t -v "$(pwd):/app" "${DOCKER_TEST_IMAGE_NAME}" -i "${REPO_PATH}" -T
46 - run:
47 command: |
48 if [ -n "$CIRCLE_TAG" ]; then
49 make test-docker DOCKER_IMAGE_TAG=$CIRCLE_TAG
50 else
51 make test-docker
52 fi
53
54 docker_hub_master:
55 docker:
56 - image: circleci/golang:1.10
57 working_directory: /go/src/github.com/prometheus/node_exporter
58
59 environment:
60 DOCKER_IMAGE_NAME: prom/node-exporter
61 QUAY_IMAGE_NAME: quay.io/prometheus/node-exporter
62 DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.10-base
63 REPO_PATH: github.com/prometheus/node_exporter
64
65 steps:
66 - checkout
67 - setup_remote_docker
68 - attach_workspace:
69 at: .
70 - run: ln -s .build/linux-amd64/node_exporter node_exporter
71 - run: make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME
72 - run: make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME
73 - run: docker images
74 - run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
75 - run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
76 - run: docker push $DOCKER_IMAGE_NAME
77 - run: docker push $QUAY_IMAGE_NAME
78
79 docker_hub_release_tags:
80 docker:
81 - image: circleci/golang:1.10
82 working_directory: /go/src/github.com/prometheus/node_exporter
83
84 environment:
85 DOCKER_IMAGE_NAME: prom/node-exporter
86 QUAY_IMAGE_NAME: quay.io/prometheus/node-exporter
87 DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.10-base
88 REPO_PATH: github.com/prometheus/node_exporter
89
90 steps:
91 - checkout
92 - setup_remote_docker
93 - run: mkdir -v -p ${HOME}/bin
94 - 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
95 - run: echo 'export PATH=${HOME}/bin:${PATH}' >> ${BASH_ENV}
96 - run: make promu
97 - attach_workspace:
98 at: .
99 - run: make promu
100 - run: promu crossbuild tarballs
101 - run: promu checksum .tarballs
102 - run: promu release .tarballs
103 - store_artifacts:
104 path: .tarballs
105 destination: releases
106 - run:
107 command: |
108 if [ -n "$CIRCLE_TAG" ]; then
109 make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
110 make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
111 else
112 make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME
113 make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME
114 fi
115 - run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
116 - run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
117 - run: |
118 if [[ "$CIRCLE_TAG" =~ ^v[0-9]+(\.[0-9]+){2}$ ]]; then
119 docker tag "$DOCKER_IMAGE_NAME:$CIRCLE_TAG" "$DOCKER_IMAGE_NAME:latest"
120 docker tag "$QUAY_IMAGE_NAME:$CIRCLE_TAG" "$QUAY_IMAGE_NAME:latest"
121 fi
122 - run: echo docker push $DOCKER_IMAGE_NAME
123 - run: echo docker push $QUAY_IMAGE_NAME
124
125workflows:
126 version: 2
127 node_exporter:
128 jobs:
129 - test
130 - build
131 - docker_hub_master:
132 requires:
133 - test
134 - build
135 filters:
136 branches:
137 only: master
138 - docker_hub_release_tags:
139 requires:
140 - test
141 - build
142 filters:
143 branches:
144 ignore: /.*/
145 tags:
146 only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/