name: build on: [push, pull_request] jobs: build: strategy: fail-fast: false matrix: include: - ruby: 3.0 gemfile: Gemfile elasticsearch: 7.16.1 - ruby: 3.0 gemfile: gemfiles/opensearch.gemfile opensearch: 1.2.1 - ruby: 3.0 gemfile: gemfiles/activerecord61.gemfile elasticsearch: 7.16.1 - ruby: 2.7 gemfile: gemfiles/activerecord60.gemfile elasticsearch: 7.16.1 - ruby: 2.6 gemfile: gemfiles/activerecord52.gemfile elasticsearch: 7.0.0 - ruby: 2.5 gemfile: gemfiles/activerecord51.gemfile elasticsearch: 6.8.21 - ruby: 2.4 gemfile: gemfiles/activerecord50.gemfile elasticsearch: 6.0.0 - ruby: 2.7 gemfile: gemfiles/mongoid7.gemfile elasticsearch: 7 mongodb: true - ruby: 2.6 gemfile: gemfiles/mongoid6.gemfile elasticsearch: 6 mongodb: true runs-on: ubuntu-latest env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} steps: - uses: actions/checkout@v2 - uses: ruby/setup-ruby@v1 with: ruby-version: ${{ matrix.ruby }} bundler-cache: true - run: bundle update - uses: actions/cache@v2 if: ${{ matrix.elasticsearch }} with: path: ~/elasticsearch key: ${{ runner.os }}-elasticsearch-${{ matrix.elasticsearch }} - uses: ankane/setup-elasticsearch@v1 if: ${{ matrix.elasticsearch }} with: elasticsearch-version: ${{ matrix.elasticsearch }} plugins: | analysis-kuromoji analysis-smartcn analysis-stempel analysis-ukrainian - uses: actions/cache@v2 if: ${{ matrix.opensearch }} with: path: ~/opensearch key: ${{ runner.os }}-opensearch-${{ matrix.opensearch }} - uses: ankane/setup-opensearch@v1 if: ${{ matrix.opensearch }} with: opensearch-version: ${{ matrix.opensearch }} plugins: | analysis-kuromoji analysis-smartcn analysis-stempel analysis-ukrainian - uses: ankane/setup-mongodb@v1 if: ${{ matrix.mongodb }} - run: | sudo apt-get install redis-server sudo systemctl start redis - run: bundle exec rake test