diff options
author | Ben Kochie <superq@gmail.com> | 2018-03-08 12:43:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-08 12:43:49 +0100 |
commit | 65e485c4e926083c8cb4baf36a8d80d16a963421 (patch) | |
tree | 489f26fcae75c366888feafc85c9267c501f680f /.circleci | |
parent | 098f975b4875fc065acc377e9e32e04a246a457e (diff) | |
download | prometheus_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.yml | 146 |
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 | --- | ||
2 | version: 2 | ||
3 | |||
4 | jobs: | ||
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 | |||
125 | workflows: | ||
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}(-.+|[^-.]*)$/ | ||