name: Build

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

permissions:
  contents: read

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest

    strategy:
      fail-fast: false
      matrix:
        ruby-version: ['2.7', '3.1', '3.2', 'jruby']

    steps:
    - name: Checkout
      uses: actions/checkout@v3

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

    - name: Setup Gem Cache
      uses: actions/cache@v3
      with:
        path: vendor/bundle
        key: ${{ runner.os }}-gems-${{ matrix.ruby-version }}-${{ hashFiles('**/Gemfile.lock') }}
        restore-keys: |
          ${{ runner.os }}-gems-${{ matrix.ruby-version }}-

    - name: Install Dependencies
      run: |
        gem install bones
        rake gem:install_dependencies

    - name: Run Tests
      run: rake test
