Skip to content

Merge pull request #4 from block/myron/address-actions-warning #13

Merge pull request #4 from block/myron/address-actions-warning

Merge pull request #4 from block/myron/address-actions-warning #13

Workflow file for this run

# 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.1"
- "opensearch:2.16.0"
- "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.1"
- build_part: "run_most_specs_with_vcr"
ruby: "3.3"
datastore: "elasticsearch:8.15.1"
- build_part: "run_specs_file_by_file"
ruby: "3.3"
datastore: "elasticsearch:8.15.1"
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