carrierwaveuploader/carrierwave

View on GitHub
.github/workflows/test.yml

Summary

Maintainability
Test Coverage
name: Test

on: [push, pull_request]

jobs:
  test:
    name: RSpec and Cucumber
    strategy:
      fail-fast: false
      matrix:
        ruby: [ '2.7', '3.0', '3.1', '3.2', jruby ]
        gemfile: [ gemfiles/rails-7-0.gemfile ]
        experimental: [ false ]
        include:
          - ruby: '2.5'
            gemfile: gemfiles/rails-6-0.gemfile
            experimental: false
          - ruby: '2.6'
            gemfile: gemfiles/rails-6-1.gemfile
            experimental: false
          - ruby: '3.2'
            gemfile: gemfiles/rails-7-1.gemfile
            experimental: false
          - ruby: '3.2'
            gemfile: gemfiles/rails-main.gemfile
            experimental: true
          - ruby: ruby-head
            gemfile: gemfiles/rails-7-1.gemfile
            experimental: false
          - ruby: jruby-head
            gemfile: gemfiles/rails-7-0.gemfile
            experimental: true
    runs-on: ubuntu-20.04
    continue-on-error: ${{ matrix.experimental }}
    env:
      BUNDLE_GEMFILE: ${{ matrix.gemfile }}
      JRUBY_OPTS: --debug
    steps:
    - uses: actions/checkout@v4
    - name: Setup ImageMagick policy
      run: sudo sh -c 'echo '\''<policymap><policy domain="coder" rights="read|write" pattern="PDF" /></policymap>'\'' > /etc/ImageMagick-6/policy.xml'
    - name: Update package list
      run: sudo apt update
    - name: Install ghostscript to process PDF
      run: sudo apt-get -y install ghostscript
    - name: Install libvips-dev for Carrierwave::Vips
      run: sudo apt-get install libvips-dev
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
        bundler-cache: true
    - name: Run RSpec
      run: bundle exec rake spec
    - name: Run Cucumber
      run: bundle exec rake features

  rubocop:
    name: RuboCop
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v4
      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.2"
          bundler-cache: true
      - name: Run check
        run: bundle exec rubocop