Studiosity/grover

View on GitHub
.github/workflows/test.yml

Summary

Maintainability
Test Coverage
name: Test Grover Ruby gem

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    services:
      remote-chrome:
        image: browserless/chrome:latest
        ports:
          - 3000:3000
    strategy:
      fail-fast: false
      matrix:
        ruby-version: ['3.3']
        node-version: ['18']
        puppeteer-version: [
          '17.1.3',
          '18.2.1',
          '19.11.1',
          '20.9.0',
          '21.9.0',
          '22.4.1'
        ]
        include:
          - ruby-version: '2.7'
            node-version: '18'
            puppeteer-version: '22.4.1'
          - ruby-version: '3.0'
            node-version: '18'
            puppeteer-version: '22.4.1'
          - ruby-version: '3.1'
            node-version: '18'
            puppeteer-version: '22.4.1'
          - ruby-version: '3.2'
            node-version: '18'
            puppeteer-version: '22.4.1'
          - ruby-version: '3.3'
            node-version: '20'
            puppeteer-version: '22.4.1'

    steps:
      - uses: actions/checkout@v3

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

      - name: Set up Node
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install Puppeteer
        run: npm install puppeteer@${{ matrix.puppeteer-version }}

      - name: Lint code - Rubocop
        run: bundle exec rubocop

      - name: Run tests
        run: bundle exec rspec
        env:
          PUPPETEER_VERSION: ${{ matrix.puppeteer-version }}

      - name: Run tests with remote browser
        run: bundle exec rspec --tag remote_browser
        env:
          PUPPETEER_VERSION: ${{ matrix.puppeteer-version }}

      - name: Test & publish code coverage
        uses: paambaati/codeclimate-action@v3.2.0
        env:
          CC_TEST_REPORTER_ID: 5cfed40102c670b5c9e509730782b751939ddbe53fc57c317b718f635bab1ce8