github.com/jonsyu1/godel@v0.0.0-20171017211503-64567a0cf169/.circleci/config.yml (about) 1 ### Docker images ### 2 alpine-go-curr: &alpine-go-curr 3 working_directory: /go/src/github.com/palantir/godel 4 docker: 5 - image: nmiyake/go:alpine-go-1.9.1-t124 6 7 alpine-go-prev: &alpine-go-prev 8 working_directory: /go/src/github.com/palantir/godel 9 docker: 10 - image: nmiyake/go:alpine-go-1.8.3-t124 11 12 brew-go: &brew-go 13 working_directory: /go/src/github.com/palantir/godel 14 docker: 15 - image: nmiyake/go:brew-go-t124 16 17 darwin-linux: &darwin-linux 18 working_directory: /go/src/github.com/palantir/godel 19 docker: 20 - image: nmiyake/go:go-darwin-linux-1.9.1-t124 21 22 darwin-linux-no-cgo: &darwin-linux-no-cgo 23 working_directory: /go/src/github.com/palantir/godel 24 docker: 25 - image: nmiyake/go:go-darwin-linux-no-cgo-1.9.1-t124 26 environment: 27 CGO_ENABLED: 0 28 29 darwin-linux-rpm-fpm: &darwin-linux-rpm-fpm 30 working_directory: /go/src/github.com/palantir/godel 31 docker: 32 - image: nmiyake/go:go-darwin-linux-no-cgo-1.9.1-docker-17.03.0-ce-rpm-fpm-t124 33 34 ### Shared cache steps ### 35 godel-gouser-cache-restore: &godel-gouser-cache-restore 36 restore_cache: 37 keys: 38 - godel-gouser-cache-{{ checksum "godelw" }}-v1 39 godel-gouser-cache-save: &godel-gouser-cache-save 40 save_cache: 41 key: godel-gouser-cache-{{ checksum "godelw" }}-v1 42 paths: 43 - /home/gouser/.godel 44 45 godel-linuxbrew-cache-restore: &godel-linuxbrew-cache-restore 46 restore_cache: 47 keys: 48 - godel-linuxbrew-cache-{{ checksum "godelw" }}-v1 49 godel-linuxbrew-cache-save: &godel-linuxbrew-cache-save 50 save_cache: 51 key: godel-linuxbrew-cache-{{ checksum "godelw" }}-v1 52 paths: 53 - /home/linuxbrew/.godel 54 55 godel-root-cache-restore: &godel-root-cache-restore 56 restore_cache: 57 keys: 58 - godel-root-cache-{{ checksum "godelw" }}-v1 59 godel-root-cache-save: &godel-root-cache-save 60 save_cache: 61 key: godel-root-cache-{{ checksum "godelw" }}-v1 62 paths: 63 - ~/.godel 64 65 ### Shared test steps ### 66 define-tests-dir: &define-tests-dir 67 run: echo "export TESTS_DIR=/tmp/test-results/${CIRCLE_PROJECT_REPONAME}-${TAG_NAME}-tests" >> $BASH_ENV 68 69 mkdir-tests-dir: &mkdir-tests-dir 70 run: mkdir -p "${TESTS_DIR}" 71 72 run-tests: &run-tests 73 run: ./godelw test --tags="$TAG_NAME" --junit-output="$TESTS_DIR/tests.xml" 74 75 store-test-results: &store-test-results 76 type: test-results-store 77 path: /tmp/test-results 78 79 ### Other shared steps ### 80 go-install-packages: &go-install-packages 81 run: go install $(./godelw packages) 82 83 go-version: &go-version 84 run: go version 85 86 godel-version: &godel-version 87 run: ./godelw version 88 89 godel-dist-product: &godel-dist-product 90 run: ./godelw dist "$PRODUCT_NAME" 91 92 store-artifacts: &store-artifacts 93 type: artifacts-store 94 path: /tmp/test-results 95 destination: test-results 96 97 test_steps: &test_steps 98 - setup_remote_docker 99 - checkout 100 - *go-version 101 - *godel-root-cache-restore 102 - *godel-version 103 - *godel-root-cache-save 104 - *go-install-packages 105 - *define-tests-dir 106 - *mkdir-tests-dir 107 - *godel-dist-product 108 - run: go install ./vendor/github.com/palantir/amalgomate 109 - *run-tests 110 - *store-test-results 111 - *store-artifacts 112 113 ### Jobs ### 114 version: 2 115 jobs: 116 ### Base tests ### 117 distgo: 118 <<: *darwin-linux-rpm-fpm 119 environment: 120 PRODUCT_NAME: distgo 121 TAG_NAME: distgo 122 # define custom steps because image runs with non-root user 123 steps: 124 - setup_remote_docker 125 - checkout 126 - *go-version 127 - *godel-gouser-cache-restore 128 - *godel-version 129 - *godel-gouser-cache-save 130 - *define-tests-dir 131 - *mkdir-tests-dir 132 - *godel-dist-product 133 - *run-tests 134 - *store-test-results 135 - *store-artifacts 136 137 godel: 138 <<: *darwin-linux-no-cgo 139 environment: 140 PRODUCT_NAME: godel 141 TAG_NAME: none 142 steps: *test_steps 143 144 gonform: 145 <<: *darwin-linux-no-cgo 146 environment: 147 PRODUCT_NAME: gonform 148 TAG_NAME: gonform 149 steps: *test_steps 150 151 gunit: 152 <<: *darwin-linux 153 environment: 154 PRODUCT_NAME: gunit 155 TAG_NAME: gunit 156 steps: *test_steps 157 158 okgo: 159 <<: *darwin-linux-no-cgo 160 environment: 161 PRODUCT_NAME: okgo 162 TAG_NAME: okgo 163 steps: *test_steps 164 165 ### Integration tests ### 166 integration-alpine-go-curr: 167 <<: *alpine-go-curr 168 environment: 169 PRODUCT_NAME: godel 170 TAG_NAME: integration 171 CGO_ENABLED: 0 172 steps: *test_steps 173 174 integration-alpine-go-prev: 175 <<: *alpine-go-prev 176 environment: 177 PRODUCT_NAME: godel 178 TAG_NAME: integration 179 CGO_ENABLED: 0 180 steps: *test_steps 181 182 integration-brew: 183 <<: *brew-go 184 environment: 185 PRODUCT_NAME: godel 186 TAG_NAME: integration 187 # define custom steps because image runs with non-root user 188 steps: 189 - checkout 190 - *go-version 191 - *godel-linuxbrew-cache-restore 192 - *godel-version 193 - *godel-linuxbrew-cache-save 194 - *go-install-packages 195 - *define-tests-dir 196 - *mkdir-tests-dir 197 - *godel-dist-product 198 - *run-tests 199 - *store-test-results 200 - *store-artifacts 201 202 integration-std: 203 <<: *darwin-linux-no-cgo 204 environment: 205 PRODUCT_NAME: godel 206 TAG_NAME: integration 207 steps: *test_steps 208 209 ### Docs ### 210 wiki: 211 <<: *darwin-linux-no-cgo 212 steps: 213 - checkout 214 - *go-version 215 - *godel-root-cache-restore 216 - *godel-version 217 - *godel-root-cache-save 218 - run: ./godelw github-wiki --docs-dir docs --repository=git@github.com:palantir/godel.wiki.git 219 220 ### Dist/Publish ### 221 dist: 222 <<: *darwin-linux-no-cgo 223 steps: 224 - checkout 225 - *go-version 226 - *godel-root-cache-restore 227 - *godel-version 228 - *godel-root-cache-save 229 - run: ./godelw dist 230 - save_cache: 231 key: dist-{{ .Environment.CIRCLE_SHA1 }}-v1 232 paths: 233 - dist 234 publish: 235 <<: *darwin-linux-no-cgo 236 steps: 237 - checkout 238 - *go-version 239 - *godel-root-cache-restore 240 - *godel-version 241 - *godel-root-cache-save 242 - restore_cache: 243 keys: 244 - dist-{{ .Environment.CIRCLE_SHA1 }}-v1 245 - run: ./godelw publish bintray --url https://api.bintray.com --subject palantir --repository releases --user "$BINTRAY_USER" --password "$BINTRAY_PASSWORD" --publish --downloads-list godel 246 247 ### Workflows ### 248 requires_products: &requires_products 249 - dist 250 - distgo 251 - godel 252 - gonform 253 - gunit 254 - integration-alpine-go-curr 255 - integration-alpine-go-prev 256 - integration-brew 257 - integration-std 258 - okgo 259 260 all-tags-filter: &all-tags-filter 261 filters: 262 tags: 263 only: /.*/ 264 265 workflows: 266 version: 2 267 build-publish: 268 jobs: 269 - dist: 270 <<: *all-tags-filter 271 - distgo: 272 <<: *all-tags-filter 273 - godel: 274 <<: *all-tags-filter 275 - gonform: 276 <<: *all-tags-filter 277 - gunit: 278 <<: *all-tags-filter 279 - integration-alpine-go-curr: 280 <<: *all-tags-filter 281 - integration-alpine-go-prev: 282 <<: *all-tags-filter 283 - integration-brew: 284 <<: *all-tags-filter 285 - integration-std: 286 <<: *all-tags-filter 287 - okgo: 288 <<: *all-tags-filter 289 - wiki: 290 requires: *requires_products 291 filters: 292 branches: 293 only: /^master$/ 294 - publish: 295 requires: *requires_products 296 filters: 297 tags: 298 only: /^[0-9]+(\.[0-9]+)+(-rc[0-9]+)?(-alpha[0-9]+)?$/ 299 branches: 300 ignore: /.*/