.circleci/config.yml
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}/