name: CI
on:
  - push
  - pull_request

jobs:
  test:
    name: Test on Ruby ${{ matrix.ruby }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby:
          - '2.7'
          - '2.6'
          - '2.5'
          - '2.4'
          - head
    continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
    steps:
      - uses: actions/checkout@v2

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true

      - run: bundle exec rspec --tag '~integration'  # skip integration tests

  publish:
    name: Publish to RubyGems
    needs: [test]
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.7
          bundler-cache: true

      - name: Publish to RubyGems
        run: |
          install -D -m 0600 /dev/null $HOME/.gem/credentials
          printf -- '---\n:rubygems_api_key: %s\n' "$RUBYGEMS_API_KEY" > $HOME/.gem/credentials
          gem build *.gemspec
          gem push *.gem
        env:
          RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}

name: CI
on:
  - push
  - pull_request

jobs:
  test:
    name: Test on Ruby ${{ matrix.ruby }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby:
          - '3.1'
          - '3.0'
          - '2.7'
          - '2.6'
          - '2.5'
          - '2.4'
          - head
    continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
    steps:
      - uses: actions/checkout@v2

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true

      - run: bundle exec rspec --tag '~integration'  # skip integration tests

  publish:
    name: Publish to RubyGems
    needs: [test]
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.7
          bundler-cache: true

      - name: Publish to RubyGems
        run: |
          install -D -m 0600 /dev/null $HOME/.gem/credentials
          printf -- '---\n:rubygems_api_key: %s\n' "$RUBYGEMS_API_KEY" > $HOME/.gem/credentials
          gem build *.gemspec
          gem push *.gem
        env:
          RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}

Add Ruby 3.0 and 3.1 to test matrix
CI: Add Ruby 3.0 and 3.1 to test matrix
