asciidoctor/asciidoctor-doctest

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
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 }}