projectblacklight/blacklight

View on GitHub
.github/workflows/ruby.yml

Summary

Maintainability
Test Coverage
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby

name: CI

on:
  push:
    branches:
      - main
      - 'release-*'
  pull_request:

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: 3.2
        bundler: 'latest'
    - name: Install dependencies
      run: bundle install
    - name: Run linter
      run: bundle exec rake rubocop
  test:
    runs-on: ubuntu-latest
    name: test (ruby ${{ matrix.ruby }} / rails ${{ matrix.rails_version }} ${{ matrix.additional_name }})
    strategy:
      matrix:
        ruby: ['3.0']
        rails_version: ['6.1.7', '7.0.4']
        bootstrap_version: [null]
        view_component_version: ['~> 2.66']
        api: [null]
        additional_engine_cart_rails_options: ['']
        additional_name: ['']
        include:
        - ruby: '3.3.0'
          rails_version: '7.1.1'
        - ruby: '3.2.2'
          rails_version: '7.1.1'
        - ruby: '3.2.2'
          rails_version: '7.0.4'
        - ruby: '3.2.2'
          rails_version: '7.0.4'
          solr_version: '9.3.0'
          additional_name: 'Solr 9.3.0'
        - ruby: '3.2.2'
          rails_version: '7.0.4'
          solr_version: '8.11.2'
          additional_name: 'Solr 8.11.2'
        - ruby: '3.1'
          rails_version: '7.0.4'
        - ruby: '3.1'
          rails_version: '7.0.4'
          view_component_version: '~> 3.0.0.rc1'
          additional_name: '/ ViewComponent 3'
        - ruby: '3.1'
          rails_version: '7.0.4'
          additional_name: '/ Propshaft'
          additional_engine_cart_rails_options: -a propshaft --css=bootstrap
        - ruby: '3.0'
          rails_version: '7.0.4'
          bootstrap_version: '~> 4.0'
          additional_name: '/ Bootstrap 4'
        - ruby: '3.0'
          rails_version: '7.0.4'
          api: 'true'
          additional_engine_cart_rails_options: --api --skip-yarn
          additional_name: '/ API'
    env:
      RAILS_VERSION: ${{ matrix.rails_version }}
      SOLR_VERSION: ${{ matrix.solr_version || 'latest' }}
      VIEW_COMPONENT_VERSION: ${{ matrix.view_component_version }}
      BOOTSTRAP_VERSION: ${{ matrix.bootstrap_version }}
      BLACKLIGHT_API_TEST: ${{ matrix.api }}
      ENGINE_CART_RAILS_OPTIONS: "--skip-git --skip-listen --skip-spring --skip-keeps --skip-coffee --skip-test ${{ matrix.additional_engine_cart_rails_options }}"
    steps:
    - uses: actions/checkout@v3
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        bundler: 'latest'
        ruby-version: ${{ matrix.ruby }}
    - name: Install dependencies
      run: bundle install
    - name: Run tests
      run: bundle exec rake ci
  docker_build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Build docker image
      run: docker-compose build app