name: Test on: - push - pull_request jobs: test: name: Ruby ${{ matrix.ruby }} / ${{ matrix.suite }} runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: ruby: - "3.2" - "3.1" - "3.0" - "2.7" suite: - core - faraday-0.9 - faraday-1.0 - msgr - rack - rails-5.2 - rails-6.0 - rails-6.1 - rails-7.0 - redis-4.0 - redis-5.0 - redis-client - restify - sidekiq-5 - sidekiq-6 - sidekiq-7 include: - suite: core spec: --tag ~probe gemfile: gemfiles/core.gemfile - suite: faraday-0.9 spec: --tag probe:faraday gemfile: gemfiles/faraday_09.gemfile - suite: faraday-1.0 spec: --tag probe:faraday gemfile: gemfiles/faraday_10.gemfile - suite: msgr spec: --tag probe:msgr gemfile: gemfiles/core.gemfile - suite: rack spec: --tag probe:rack gemfile: gemfiles/core.gemfile - suite: rails-5.2 spec: --tag probe:rails --tag ~probe gemfile: gemfiles/rails_52.gemfile - suite: rails-6.0 spec: --tag probe:rails --tag ~probe gemfile: gemfiles/rails_60.gemfile - suite: rails-6.1 spec: --tag probe:rails --tag ~probe gemfile: gemfiles/rails_61.gemfile - suite: rails-7.0 spec: --tag probe:rails --tag ~probe gemfile: gemfiles/rails_70.gemfile - suite: redis-4.0 spec: --tag probe:redis gemfile: gemfiles/redis_40.gemfile - suite: redis-5.0 spec: --tag probe:redis gemfile: gemfiles/redis_50.gemfile - suite: redis-client spec: --tag probe:redis_client gemfile: gemfiles/core.gemfile - suite: restify spec: --tag probe:restify gemfile: gemfiles/core.gemfile - suite: sidekiq-5 spec: --tag probe:sidekiq gemfile: gemfiles/sidekiq_50.gemfile - suite: sidekiq-6 spec: --tag probe:sidekiq gemfile: gemfiles/sidekiq_60.gemfile - suite: sidekiq-7 spec: --tag probe:sidekiq gemfile: gemfiles/sidekiq_70.gemfile exclude: - suite: rails-5.2 ruby: '3.2' - suite: rails-5.2 ruby: '3.1' - suite: rails-5.2 ruby: '3.0' env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} BUNDLE_WITHOUT: development services: rabbitmq: image: rabbitmq:latest ports: [5672/tcp] options: --health-cmd "rabbitmqctl node_health_check" --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@master - uses: ruby/setup-ruby@v1 env: BUNDLE_JOBS: 4 BUNDLE_RETRY: 3 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - name: Install dependencies run: | sudo apt install -y redis-server - name: Run rspec env: AMQP_SERVER: amqp://localhost:${{ job.services.rabbitmq.ports[5672] }} run: bundle exec rspec --color ${{ matrix.spec }}