Neodelf/lecter

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
version: 2
jobs:
  build:
    working_directory: ~/bikeindex/bike_index
    environment:
      COVERAGE: true
    docker:
    - image: circleci/ruby:2.6.3
    steps:
    - checkout
    - restore_cache:
        keys:
        # This branch if available
        - v2-dep-{{ .Branch }}-
        # Default branch if not
        - v2-dep-master-
        # Any branch if there are none on the default branch - this should be unnecessary if you have your default branch configured correctly
        - v2-dep-
    - run:
        name: Install Bundler
        command: gem install bundler -v 2.1.2
    - run:
        name: Bundle Gems
        command: bundle install --path=vendor/bundle --jobs=4 --retry=3
    - run:
        name: Rubocop
        command: bundle exec rubocop
    - run:
        name: Install Code Climate Test Reporter
        command: |
          curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
          chmod +x ./cc-test-reporter
    - save_cache:
        key: v2-dep-{{ .Branch }}-{{ epoch }}
        paths:
        - ./vendor/bundle
        - ~/.bundle
    - run:
        name: Run tests
        command: |
          ./cc-test-reporter before-build
          TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
          bundle exec rspec --profile 10 \
                            --color \
                            --order random \
                            --format progress \
                            -- ${TESTFILES}
    - run:
        name: Code Climate Test Coverage
        command: |
          ./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
    - persist_to_workspace:
        root: coverage
        paths:
        - codeclimate.*.json

  upload-coverage:
    docker:
    - image: circleci/ruby:2.6.3
    environment:
      CC_TEST_REPORTER_ID: 9ef6750a0b374973f31c70ccf4bc6be1a4c93b0f2d3537d16e77450ef01f7813
    working_directory: ~/bikeindex/bike_index

    steps:
    - attach_workspace:
        at: ~/bikeindex/bike_index
    - run:
        name: Install Code Climate Test Reporter
        command: |
          curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
          chmod +x ./cc-test-reporter
    - run:
        name: Upload Test Reporter To Codeclimate
        command: |
          ./cc-test-reporter sum-coverage codeclimate.*.json --output codeclimate.total.json
          ./cc-test-reporter upload-coverage --input codeclimate.total.json

workflows:
  version: 2

  commit:
    jobs:
    - build
    - upload-coverage:
        requires:
        - build