cgriego/active_attr

View on GitHub
.github/workflows/test.yaml

Summary

Maintainability
Test Coverage
name: Test

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:
  test:
    name: Ruby ${{ matrix.ruby }} with ${{ matrix.gemfile }}
    runs-on: ubuntu-20.04
    continue-on-error: ${{ contains(matrix.ruby, 'head') || contains(matrix.gemfile, 'head') }}
    strategy:
      fail-fast: false
      matrix:
        ruby:
        - "2.1"
        - "2.2"
        - "2.3"
        - "2.4"
        - "2.5"
        - "2.6"
        - "2.7"
        - "3.0"
        - "3.1"
        - "3.2"
        - truffleruby-head
        gemfile:
        - gemfiles/rails_3_0.gemfile
        - gemfiles/rails_3_1.gemfile
        - gemfiles/rails_3_2.gemfile
        - gemfiles/rails_4_0.gemfile
        - gemfiles/rails_4_1.gemfile
        - gemfiles/rails_4_2.gemfile
        - gemfiles/rails_5_0.gemfile
        - gemfiles/rails_5_1.gemfile
        - gemfiles/rails_5_2.gemfile
        - gemfiles/rails_6_0.gemfile
        - gemfiles/rails_6_1.gemfile
        - gemfiles/rails_7_0.gemfile
        - Gemfile
        - gemfiles/rails_head.gemfile
        exclude:
        - ruby: "2.1"
          gemfile: gemfiles/rails_5_0.gemfile
        - ruby: "2.1"
          gemfile: gemfiles/rails_5_1.gemfile
        - ruby: "2.1"
          gemfile: gemfiles/rails_5_2.gemfile
        - ruby: "2.1"
          gemfile: gemfiles/rails_6_0.gemfile
        - ruby: "2.1"
          gemfile: gemfiles/rails_6_1.gemfile
        - ruby: "2.1"
          gemfile: gemfiles/rails_7_0.gemfile
        - ruby: "2.1"
          gemfile: Gemfile
        - ruby: "2.1"
          gemfile: gemfiles/rails_head.gemfile
        - ruby: "2.2"
          gemfile: gemfiles/rails_6_0.gemfile
        - ruby: "2.2"
          gemfile: gemfiles/rails_6_1.gemfile
        - ruby: "2.2"
          gemfile: gemfiles/rails_7_0.gemfile
        - ruby: "2.2"
          gemfile: Gemfile
        - ruby: "2.2"
          gemfile: gemfiles/rails_head.gemfile
        - ruby: "2.3"
          gemfile: gemfiles/rails_6_0.gemfile
        - ruby: "2.3"
          gemfile: gemfiles/rails_6_1.gemfile
        - ruby: "2.3"
          gemfile: gemfiles/rails_7_0.gemfile
        - ruby: "2.3"
          gemfile: Gemfile
        - ruby: "2.3"
          gemfile: gemfiles/rails_head.gemfile
        - ruby: "2.4"
          gemfile: gemfiles/rails_6_0.gemfile
        - ruby: "2.4"
          gemfile: gemfiles/rails_6_1.gemfile
        - ruby: "2.4"
          gemfile: gemfiles/rails_7_0.gemfile
        - ruby: "2.4"
          gemfile: Gemfile
        - ruby: "2.4"
          gemfile: gemfiles/rails_head.gemfile
        - ruby: "2.5"
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: "2.5"
          gemfile: gemfiles/rails_6_1.gemfile
        - ruby: "2.5"
          gemfile: gemfiles/rails_7_0.gemfile
        - ruby: "2.5"
          gemfile: Gemfile
        - ruby: "2.5"
          gemfile: gemfiles/rails_head.gemfile
        - ruby: "2.6"
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: "2.6"
          gemfile: gemfiles/rails_6_1.gemfile
        - ruby: "2.6"
          gemfile: gemfiles/rails_7_0.gemfile
        - ruby: "2.6"
          gemfile: Gemfile
        - ruby: "2.6"
          gemfile: gemfiles/rails_head.gemfile
        - ruby: "2.7"
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: "2.7"
          gemfile: gemfiles/rails_3_1.gemfile
        - ruby: "2.7"
          gemfile: gemfiles/rails_3_2.gemfile
        - ruby: "2.7"
          gemfile: gemfiles/rails_4_0.gemfile
        - ruby: "2.7"
          gemfile: gemfiles/rails_4_1.gemfile
        - ruby: "2.7"
          gemfile: gemfiles/rails_4_2.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_3_1.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_3_2.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_4_0.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_4_1.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_4_2.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_5_0.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_5_1.gemfile
        - ruby: "3.0"
          gemfile: gemfiles/rails_5_2.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_3_1.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_3_2.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_4_0.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_4_1.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_4_2.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_5_0.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_5_1.gemfile
        - ruby: "3.1"
          gemfile: gemfiles/rails_5_2.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_3_1.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_3_2.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_4_0.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_4_1.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_4_2.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_5_0.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_5_1.gemfile
        - ruby: "3.2"
          gemfile: gemfiles/rails_5_2.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_3_0.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_3_1.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_3_2.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_4_0.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_4_1.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_4_2.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_5_0.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_5_1.gemfile
        - ruby: truffleruby-head
          gemfile: gemfiles/rails_5_2.gemfile
    env:
      Rails: ${{ matrix.rails }}
      BUNDLE_GEMFILE: ${{ matrix.gemfile }}

    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - name: Nokogiri support for TruffleRuby
      run: sudo apt-get -yqq install libxml2-dev libxslt-dev
      if: ${{ matrix.ruby == 'truffleruby-head' }}
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
        bundler: 1
        bundler-cache: true
    - name: Run tests
      run: bundle exec rake --trace