name: Ruby

on:
  push:
    branches: [ "main", "dev/gh-actions" ]
  pull_request:
    branches: [ "main" ]

permissions:
  contents: read

jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        ruby-version: ['2.7', '3.0', '3.1', '3.2', '3.3']
        os: [ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v4
    - name: Remove Gemfile.lock
      run: rm -f Gemfile.lock
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby-version }}
        bundler-cache: true
    - name: Run tests
      run: bundle exec rake test
    - name: Test man generation
      run: bundle exec rake man

  rubocop:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Remove Gemfile.lock
      run: rm -f Gemfile.lock
    - name: Set up Ruby
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: 3.2
        bundler-cache: true
    - name: Run RuboCop
      run: bundle exec rubocop
