.github/workflows/ci.yml
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'
- head
continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: false # XXX: problems with nokogiri on ruby 3.1+
- run: bundle install
- name: Run unit tests
run: bundle exec rake spec
- name: Run integration tests
run: bundle exec rake cucumber
# FIXME: broken
#- name: Report test coverage to Code Climate
# run: bundle exec codeclimate-test-reporter
# env:
# CODECLIMATE_REPO_TOKEN: ${{ secrets.CODECLIMATE_REPO_TOKEN }}
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 }}