Add top-level schema caches to Schema::Visibility for better performance #2589
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
name: CI Suite | |
on: | |
- pull_request | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.3 | |
bundler-cache: true | |
- run: bundle exec rake rubocop | |
system_tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.3 | |
bundler-cache: true | |
- run: bundle exec rake compile | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.3 | |
bundler-cache: true | |
env: | |
BUNDLE_GEMFILE: ./spec/dummy/Gemfile | |
- run: bundle exec rails test:all | |
working-directory: ./spec/dummy | |
# Some coverage goals of these tests: | |
# - Test once without Rails at all | |
# - Test postgres, to make sure that the ActiveRecord | |
# stuff works on that (as well as the default sqlite) | |
# - Test mongoid -- and several versions, since they're quite different | |
# - Run the JS unit tests once | |
# - Test each major version of Rails we support | |
# - Test the min/max minor Ruby version we support (and others?) | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- gemfile: Gemfile | |
ruby: 3.2 | |
- gemfile: Gemfile | |
ruby: 2.7 # lowest supported version | |
- gemfile: gemfiles/rails_7.0.gemfile | |
ruby: 3.1 | |
- gemfile: gemfiles/rails_master.gemfile | |
ruby: 3.2 | |
- gemfile: gemfiles/rails_7.0.gemfile | |
ruby: 3.2 | |
- gemfile: gemfiles/rails_7.1.gemfile | |
ruby: 3.3 | |
- gemfile: gemfiles/rails_master.gemfile | |
ruby: 3.3 | |
graphql_reject_numbers_followed_by_names: 1 | |
- gemfile: gemfiles/rails_master.gemfile | |
ruby: 3.3 | |
graphql_reject_numbers_followed_by_names: 1 | |
isolation_level_fiber: 1 | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo BUNDLE_GEMFILE=${{ matrix.gemfile }} > $GITHUB_ENV | |
- run: echo GRAPHQL_REJECT_NUMBERS_FOLLOWED_BY_NAMES=1 > $GITHUB_ENV | |
if: ${{ !!matrix.graphql_reject_numbers_followed_by_names }} | |
- run: echo ISOLATION_LEVEL_FIBER=1 > $GITHUB_ENV | |
if: ${{ !!matrix.isolation_level_fiber }} | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby }} | |
bundler-cache: true | |
bundler: ${{ matrix.bundler || 'default' }} | |
- run: bundle exec rake compile | |
- run: bundle exec rake test | |
javascript_test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '21' | |
- run: npm ci | |
working-directory: ./javascript_client | |
- run: npm test | |
working-directory: ./javascript_client | |
postgres_test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- gemfile: gemfiles/rails_master.gemfile | |
ruby: 3.3 | |
isolation_level_fiber: 1 | |
- gemfile: gemfiles/rails_7.1_postgresql.gemfile | |
ruby: 3.3 | |
services: | |
postgres: | |
image: postgres:latest | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: postgres | |
ports: | |
- 5432:5432 | |
# needed because the postgres container does not provide a healthcheck | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- run: echo BUNDLE_GEMFILE='' > $GITHUB_ENV | |
- run: echo DATABASE='POSTGRESQL' > $GITHUB_ENV | |
- run: echo PGPASSWORD='postgres' > $GITHUB_ENV | |
- run: echo GRAPHQL_CPARSER=1 > $GITHUB_ENV | |
- run: echo ISOLATION_LEVEL_FIBER=1 > $GITHUB_ENV | |
if: ${{ !!matrix.isolation_level_fiber }} | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.3" | |
bundler-cache: true | |
- run: bundle exec rake compile test | |
mongodb_test: | |
strategy: | |
fail-fast: false | |
matrix: | |
gemfile: | |
- gemfiles/mongoid_6.gemfile | |
- gemfiles/mongoid_7.gemfile | |
runs-on: ubuntu-latest | |
services: | |
mongodb: | |
image: mongo | |
ports: | |
- 27017:27017 | |
steps: | |
- run: echo BUNDLE_GEMFILE=${{ matrix.gemfile }} > $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 2.7 | |
bundler-cache: true | |
- run: bundle exec rake compile test |