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: /.*/