mattbrictson/airbrussh

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI
on:
  pull_request:
  push:
    branches:
      - main
jobs:
  rubocop:
    name: "RuboCop"
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "2.7"
          bundler-cache: true
      - run: bundle exec rubocop
  test:
    name: "Test / Ruby ${{ matrix.ruby }}"
    runs-on: ubuntu-latest
    strategy:
      matrix:
        ruby: ["2.4", "2.5", "2.6", "2.7", "3.0", "3.1", "3.2", "3.3"]
    env:
      sshkit: "master"
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true
      - run: bundle exec rake test
  test_legacy_ruby_19:
    name: "Test / Ruby 1.9 / SSHKit ${{ matrix.sshkit }}"
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        sshkit: ["1.6.1", "1.7.1"]
    env:
      sshkit: ${{ matrix.sshkit }}
      RUBYOPT: "-Ku"
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "1.9"
          rubygems: "2.6.9"
          bundler: "1.17.3"
          bundler-cache: true
      - run: bundle exec rake test
  test_legacy_ruby:
    name: "Test / Ruby ${{ matrix.ruby }} / SSHKit ${{ matrix.sshkit }}"
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        ruby: ["2.0", "2.0", "2.1", "2.2", "2.3"]
        sshkit: ["1.6.1", "1.7.1", "master"]
    env:
      sshkit: ${{ matrix.sshkit }}
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler: "1.17.3"
          bundler-cache: true
      - run: bundle exec rake test
  spec_all:
    name: "Test / Ruby (All)"
    runs-on: ubuntu-latest
    needs: [test, test_legacy_ruby, test_legacy_ruby_19]
    if: always()
    steps:
      - name: All tests ok
        if: ${{ !(contains(needs.*.result, 'failure')) }}
        run: exit 0
      - name: Some tests failed
        if: ${{ contains(needs.*.result, 'failure') }}
        run: exit 1