diff options
-rw-r--r-- | .circleci/config.yml | 146 | ||||
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | circle.yml | 68 |
3 files changed, 147 insertions, 68 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}(-.+|[^-.]*)$/ | ||
@@ -90,6 +90,7 @@ skip-test-32bit: | |||
90 | @echo ">> SKIP running tests in 32-bit mode: not supported on $(OS_detected)/$(GOARCH)" | 90 | @echo ">> SKIP running tests in 32-bit mode: not supported on $(OS_detected)/$(GOARCH)" |
91 | 91 | ||
92 | collector/fixtures/sys/.unpacked: collector/fixtures/sys.ttar | 92 | collector/fixtures/sys/.unpacked: collector/fixtures/sys.ttar |
93 | @echo ">> extracting sysfs fixtures" | ||
93 | ./ttar -C collector/fixtures -x -f collector/fixtures/sys.ttar | 94 | ./ttar -C collector/fixtures -x -f collector/fixtures/sys.ttar |
94 | touch $@ | 95 | touch $@ |
95 | 96 | ||
diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 3268554..0000000 --- a/circle.yml +++ /dev/null | |||
@@ -1,68 +0,0 @@ | |||
1 | machine: | ||
2 | environment: | ||
3 | DOCKER_IMAGE_NAME: prom/node-exporter | ||
4 | QUAY_IMAGE_NAME: quay.io/prometheus/node-exporter | ||
5 | DOCKER_TEST_IMAGE_NAME: quay.io/prometheus/golang-builder:1.10-base | ||
6 | REPO_PATH: github.com/prometheus/node_exporter | ||
7 | pre: | ||
8 | - sudo curl -L -o /usr/bin/docker 'https://s3-external-1.amazonaws.com/circle-downloads/docker-1.9.1-circleci' | ||
9 | - sudo chmod 0755 /usr/bin/docker | ||
10 | - sudo 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 | ||
11 | services: | ||
12 | - docker | ||
13 | |||
14 | dependencies: | ||
15 | pre: | ||
16 | - make promu | ||
17 | - docker info | ||
18 | override: | ||
19 | - ln -s ${HOME}/${CIRCLE_PROJECT_REPONAME} ${HOME}/.go_workspace/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} | ||
20 | - | | ||
21 | cd ${HOME}/.go_workspace/src/github.com/${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME} | ||
22 | make | ||
23 | - rm -v ${HOME}/${CIRCLE_PROJECT_REPONAME}/node_exporter | ||
24 | - promu crossbuild | ||
25 | - ln -s .build/linux-amd64/node_exporter node_exporter | ||
26 | - | | ||
27 | if [ -n "$CIRCLE_TAG" ]; then | ||
28 | make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG | ||
29 | make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG | ||
30 | else | ||
31 | make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME | ||
32 | make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME | ||
33 | fi | ||
34 | post: | ||
35 | - mkdir $CIRCLE_ARTIFACTS/binaries/ && cp -a .build/* $CIRCLE_ARTIFACTS/binaries/ | ||
36 | - docker images | ||
37 | |||
38 | test: | ||
39 | override: | ||
40 | - docker run --rm -t -v "$(pwd):/app" "${DOCKER_TEST_IMAGE_NAME}" -i "${REPO_PATH}" -T | ||
41 | - make test-docker DOCKER_IMAGE_TAG=$CIRCLE_TAG | ||
42 | |||
43 | deployment: | ||
44 | hub_branch: | ||
45 | branch: master | ||
46 | owner: prometheus | ||
47 | commands: | ||
48 | - docker login -e $DOCKER_EMAIL -u $DOCKER_LOGIN -p $DOCKER_PASSWORD | ||
49 | - docker login -e $QUAY_EMAIL -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io | ||
50 | - docker push $DOCKER_IMAGE_NAME | ||
51 | - docker push $QUAY_IMAGE_NAME | ||
52 | hub_tag: | ||
53 | tag: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/ | ||
54 | owner: prometheus | ||
55 | commands: | ||
56 | - promu crossbuild tarballs | ||
57 | - promu checksum .tarballs | ||
58 | - promu release .tarballs | ||
59 | - mkdir $CIRCLE_ARTIFACTS/releases/ && cp -a .tarballs/* $CIRCLE_ARTIFACTS/releases/ | ||
60 | - docker login -e $DOCKER_EMAIL -u $DOCKER_LOGIN -p $DOCKER_PASSWORD | ||
61 | - docker login -e $QUAY_EMAIL -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io | ||
62 | - | | ||
63 | if [[ "$CIRCLE_TAG" =~ ^v[0-9]+(\.[0-9]+){2}$ ]]; then | ||
64 | docker tag "$DOCKER_IMAGE_NAME:$CIRCLE_TAG" "$DOCKER_IMAGE_NAME:latest" | ||
65 | docker tag "$QUAY_IMAGE_NAME:$CIRCLE_TAG" "$QUAY_IMAGE_NAME:latest" | ||
66 | fi | ||
67 | - docker push $DOCKER_IMAGE_NAME | ||
68 | - docker push $QUAY_IMAGE_NAME | ||