VerdigrisTech/green-button-data

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
version: 2.1

orbs:
  ruby: circleci/ruby@1.7.1
  codecov: codecov/codecov@3.2.2

jobs:
  test:
    parameters:
      ruby-version:
        type: string
    docker:
      - image: cimg/ruby:<< parameters.ruby-version >>
    working_directory: ~/green-button-data
    steps:
      - checkout
      - ruby/install-deps
      - ruby/rspec-test
      - codecov/upload

  build:
    docker:
      - image: cimg/ruby:2.7
    working_directory: ~/green-button-data
    steps:
      - checkout
      - run:
          name: Build gem
          command: gem build green-button-data.gemspec
      - persist_to_workspace:
          root: .
          paths:
            - green-button-data-*.gem

  publish:
    docker:
      - image: cimg/ruby:2.7
    working_directory: ~/green-button-data
    steps:
      - attach_workspace:
          at: .
      - run:
          name: Login to RubyGems.org
          command: |
            mkdir ~/.gem; \
            curl -u ${RUBYGEMS_USER}:${RUBYGEMS_PASS} https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; \
            chmod 0600 ~/.gem/credentials
      - run:
          name: Publish to RubyGems.org
          command: gem push green-button-data-${CIRCLE_TAG:1}.gem

workflows:
  version: 2
  tests:
    jobs:
      - test:
          matrix:
            parameters:
              ruby-version:
                - "2.6"
                - "2.7"
                - "3.0"
                - "3.1"
  release:
    jobs:
      - build:
          filters:
            branches:
              ignore: /.*/
            tags:
              only: /v\d+(\.\d+){0,2}/
      - publish:
          context: ruby gem
          requires:
            - build
          filters:
            branches:
              ignore: /.*/
            tags:
              only: /v\d+(\.\d+){0,2}/