Treat nil values as empty predicate #21
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file is generated by `script/update_ci_yaml` based on input from `config/tested_datastore_versions.yaml`. | |
# To edit it, make changes to the template at the bottom of `script/update_ci_yaml` and run it. | |
name: ElasticGraph CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
# It's recommended to run ElasticGraph with this option to get better performance. We want to run | |
# our CI builds with it to ensure that the option always works. | |
RUBYOPT: "--enable-frozen-string-literal" | |
# We use the VCR gem as a local "test accelerator" which caches datastore requests/responses for us. | |
# But in our CI build we don't want to use it at all, so we disable it here. | |
NO_VCR: "1" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
build_part: | |
- run_each_gem_spec | |
ruby: | |
- "3.2" | |
- "3.3" | |
datastore: | |
- "elasticsearch:8.15.3" | |
- "opensearch:2.17.1" | |
- "opensearch:2.7.0" | |
include: | |
# We have 4 build parts. The "primary" one is `run_each_gem_spec`, and we need that to be run on | |
# every supported Ruby version and against every supported datastore. It's not necessary to run | |
# these others against every combination of `ruby` and `datastore` so we just run each with one | |
# configuration here. | |
- build_part: "run_misc_checks" | |
ruby: "3.3" | |
datastore: "elasticsearch:8.15.3" | |
- build_part: "run_most_specs_with_vcr" | |
ruby: "3.3" | |
datastore: "elasticsearch:8.15.3" | |
- build_part: "run_specs_file_by_file" | |
ruby: "3.3" | |
datastore: "elasticsearch:8.15.3" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true # runs 'bundle install' and caches installed gems automatically | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "23.x" | |
- uses: KengoTODA/actions-setup-docker-compose@main | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# Note: the `10` argument on the end is a number of seconds to sleep after booting the datastore. | |
# We've found that there is a minor race condition where the shards aren't fully ready for the tests | |
# to hit them if we don't wait a bit after booting. | |
- run: script/ci_parts/${{ matrix.build_part }} ${{ matrix.datastore }} 10 |