name: CI on: push: branches: [master] pull_request: jobs: spec: runs-on: ubuntu-latest strategy: matrix: ruby: [ "2.3", "2.4", "2.5", "2.6", "2.7", "3.0", "3.1", "3.2", "3.3", "head", ] steps: - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: rake spec run: bundle exec rake spec spec-legacy: runs-on: ubuntu-20.04 strategy: matrix: ruby: ["2.0", "2.1", "2.2"] steps: - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: rake spec run: bundle exec rake spec spec-all: runs-on: ubuntu-latest needs: [spec, spec-legacy] 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 rubocop: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: "ruby" # latest-stable bundler-cache: true - name: rake rubocop run: bundle exec rake rubocop features: needs: [spec, spec-legacy] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: "ruby" # latest-stable bundler-cache: true - name: rake features run: bundle exec rake features