build.yml 2.38 KB
name: build
on: [push, pull_request]
jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        include:
        - ruby: 3.1
          gemfile: Gemfile
          elasticsearch: 8.4.1
        - ruby: 3.1
          gemfile: gemfiles/opensearch2.gemfile
          opensearch: 2.3.0
        - ruby: "3.0"
          gemfile: gemfiles/opensearch1.gemfile
          opensearch: 1.3.5
        - ruby: "3.0"
          gemfile: gemfiles/activerecord61.gemfile
          elasticsearch: 8.0.0
        - ruby: 2.7
          gemfile: gemfiles/activerecord60.gemfile
          elasticsearch: 7.17.6
        - ruby: 2.6
          gemfile: gemfiles/activerecord52.gemfile
          elasticsearch: 7.0.0
        - ruby: 3.1
          gemfile: gemfiles/mongoid8.gemfile
          elasticsearch: 8
          mongodb: true
        - ruby: 2.7
          gemfile: gemfiles/mongoid7.gemfile
          elasticsearch: 8
          mongodb: true
        - ruby: 2.6
          gemfile: gemfiles/mongoid6.gemfile
          elasticsearch: 7
          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 update
        sudo apt-get install redis-server
        sudo systemctl start redis
    - run: bundle exec rake test