airbrake/airbrake

View on GitHub
.github/workflows/test.yml

Summary

Maintainability
Test Coverage
name: airbrake

on: [push]

permissions:
  contents: read

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-latest]
        ruby: [2.6, 2.7, 3.0, 3.1, jruby]

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v3

      - name: Update package list
        run: sudo apt-get update

      - name: Install cURL Headers
        run: sudo apt-get install libcurl4 libcurl4-openssl-dev

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

      - name: Rubocop lint
        run: bundle exec rubocop

      - name: Install Bundler dependencies
        run: bundle install

      - name: Install Appraisal dependencies
        run: bundle exec appraisal install

      - name: Display Ruby version
        run: ruby -v

      - name: Unit tests
        run: bundle exec rake spec:unit

      - name: Test Rails 5.2
        if: ${{ matrix.ruby != '3.0' && matrix.ruby != '3.1' }}
        run: bundle exec appraisal rails-5.2 rake spec:integration:rails

      - name: Test Rails 6.0
        run: bundle exec appraisal rails-6.0 rake spec:integration:rails

      - name: Test Rails 6.1
        run: bundle exec appraisal rails-6.1 rake spec:integration:rails

      - name: Test Rails 7.0
        if: ${{ matrix.ruby != '2.6' && matrix.ruby != 'jruby' }}
        run: bundle exec appraisal rails-7.0 rake spec:integration:rails

      - name: Test Sinatra
        run: bundle exec appraisal sinatra rake spec:integration:sinatra

      - name: Test Rack
        run: bundle exec appraisal rack rake spec:integration:rack