github.com/tri-stone/burrow@v0.25.0/.circleci/config.yml (about) 1 # Some resuable sections, note the top-level keys 'defaults' and 'tag_filters' 2 # have no special meaning, they just exist so I can alias them and import them 3 # in later blocks 4 defaults: &defaults 5 working_directory: /go/src/github.com/hyperledger/burrow 6 docker: 7 - image: hyperledger/burrow:ci 8 9 tag_filters: &tags_filters 10 tags: 11 only: /^v[0-9]+\.[0-9]+\.[0-9]+$/ 12 13 setup_docker: &setup_docker 14 version: 17.11.0-ce 15 16 # Start of CircleCI 2.0 config 17 version: 2 18 jobs: 19 test: 20 <<: *defaults 21 steps: 22 - run: echo $CIRCLE_PULL_REQUESTS 23 - run: echo $CIRCLE_BRANCH 24 - checkout 25 - run: make test 26 # In case we miss compile errors not pulled into test paths 27 - run: make build 28 29 test_integration: 30 machine: 31 working_directory: /go/src/github.com/hyperledger/burrow 32 enabled: true 33 image: circleci/classic:201808-01 34 steps: 35 - checkout 36 - run: docker-compose run burrow make test_integration_no_postgres 37 38 ensure_vendor: 39 <<: *defaults 40 steps: 41 - checkout 42 - run: make ensure_vendor 43 44 build_docker: 45 <<: *defaults 46 steps: 47 - checkout 48 # This allows us to perform our docker builds 49 - setup_remote_docker: 50 <<: *setup_docker 51 # build docker image and tag the docker image(s) depending on branch/tag 52 - run: make docker_build 53 54 release_dev: 55 <<: *defaults 56 steps: 57 - setup_remote_docker: 58 <<: *setup_docker 59 - checkout 60 - run: make release_dev 61 62 release: 63 <<: *defaults 64 steps: 65 - setup_remote_docker: 66 <<: *setup_docker 67 - checkout 68 - run: make release 69 70 71 workflows: 72 version: 2 73 74 test_and_release: 75 jobs: 76 - test: 77 filters: 78 <<: *tags_filters 79 80 - test_integration: 81 filters: 82 <<: *tags_filters 83 84 - ensure_vendor: 85 filters: 86 <<: *tags_filters 87 88 - build_docker: 89 filters: 90 # tags filters and branch filters are applied disjunctively, so we 91 # will still build tags not on develop (i.e. including tagged 92 # releases on master that we specifically want to build) 93 <<: *tags_filters 94 95 - release_dev: 96 requires: 97 - test 98 - test_integration 99 filters: 100 branches: 101 only: develop 102 103 - release: 104 requires: 105 - test 106 - test_integration 107 filters: 108 <<: *tags_filters 109 branches: 110 ignore: /.*/