name: CI

on:
  pull_request:
  push:
    tags-ignore:
      - '*'
    paths-ignore:
      - README.md
      - CHANGELOG.md
  schedule:
    - cron: '0 7 * * SUN'

jobs:
  rspec:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu, macos, windows]
        ruby:
          - ruby-2.7
          - ruby-2.6
          - ruby-2.5
          - ruby-2.4
          - ruby-2.3
          - ruby-2.2
          - ruby-2.1
          - ruby-head

          - jruby-9.1
          - jruby-9.2
          - jruby-head

          - truffleruby
          - truffleruby-head

        include:
          - ruby: ruby-2.7
            os: ubuntu
            env:
              COVERAGE: 'true'

        exclude:
          # Truffleruby is currently not built on Windows
          - ruby: truffleruby
            os: windows
          - ruby: truffleruby-head
            os: windows

    runs-on: ${{ matrix.os }}-latest
    continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}

    steps:
      - uses: actions/checkout@v2

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

      - name: Run rspec
        run: bundle exec rspec --format progress spec
        env:
          COVERAGE: ${{ matrix.env.COVERAGE }}

      - name: Coveralls
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: coverage/lcov/rackstash.lcov
        if: matrix.env.COVERAGE == 'true'

  rubocop:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: 2.7

      - name: Run RuboCop
        run: |
          gem install rubocop
          rubocop --parallel

Add first version of a GitHub Actions based CI
Add first version of a GitHub Actions based CI
