Skip to content

Fix multiple filter values for the same property and pass them as an AND query to GraphQL #3692

Fix multiple filter values for the same property and pass them as an AND query to GraphQL

Fix multiple filter values for the same property and pass them as an AND query to GraphQL #3692

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
paths-ignore:
- 'docs/**'
- '**/*.md'
workflow_dispatch:
concurrency:
group: ci-tests-${{ github.ref }}
cancel-in-progress: true
jobs:
linting:
name: Linting
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: TypeScript
run: pnpm test:types
- name: Preconstruct
run: pnpm build
- name: Prisma Filters
run: pnpm test:filters
- name: Add back examples
run: git checkout -- examples tests/test-projects
- name: Formatting
run: pnpm format:check
linting-examples:
name: TypeScript
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- run: pnpm run -r ks-examples-postinstall
- run: cd examples/graphql-gql.tada && pnpm check:tada-output
- name: TypeScript
run: pnpm test:types
unit_tests:
name: Package Unit Tests (Jest)
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Unit tests
run: DATABASE_URL=file:./test.db pnpm jest --ci packages/core/tests/telemetry.test.ts tests/cli-tests
vitest:
name: Package Unit Tests (Vitest)
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Unit tests
run: pnpm vitest
graphql_api_tests_postgresql:
name: API Tests PostgreSQL
runs-on: ubuntu-latest
timeout-minutes: 10
services:
postgres:
image: postgres:17
env:
POSTGRES_USER: testuser
POSTGRES_PASSWORD: testpass
POSTGRES_DB: test_db
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
index: [1, 2, 3, 4]
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Unit tests
run: pnpm jest --ci --shard=${{ matrix.index }}/4 api-tests --testPathIgnorePatterns=tests/api-tests/fields/crud
env:
DATABASE_URL: postgres://testuser:testpass@localhost:5432/test_db
graphql_api_tests_sqlite:
name: API Tests SQLite
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
index: [1, 2, 3, 4]
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Unit tests
run: pnpm jest --ci --shard=${{ matrix.index }}/4 api-tests --testPathIgnorePatterns=tests/api-tests/fields/crud
env:
DATABASE_URL: file:./test.db
graphql_api_tests_mysql:
name: API Tests MySQL
runs-on: ubuntu-latest
timeout-minutes: 10
services:
mysql:
image: mariadb:11.7
env:
MYSQL_ROOT_PASSWORD: testpass
ports:
- 3306:3306
strategy:
fail-fast: false
matrix:
index: [1, 2, 3, 4]
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Unit tests
run: pnpm jest --ci --shard=${{ matrix.index }}/4 api-tests --testPathIgnorePatterns=tests/api-tests/fields/crud
env:
DATABASE_URL: mysql://root:testpass@localhost:3306/test_db
field_crud_tests_postgresql:
name: Field CRUD Tests PostgreSQL
runs-on: ubuntu-latest
timeout-minutes: 10
services:
postgres:
image: postgres:17
env:
POSTGRES_USER: testuser
POSTGRES_PASSWORD: testpass
POSTGRES_DB: test_db
ports:
- 5432:5432
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Setup local S3 bucket
run: bash ./.github/workflows/s3-bucket.sh
- name: Unit tests
run: pnpm jest --ci tests/api-tests/fields/crud
env:
S3_ENDPOINT: http://127.0.0.1:9000/
S3_FORCE_PATH_STYLE: true
S3_BUCKET_NAME: keystone-test
S3_ACCESS_KEY_ID: keystone
S3_SECRET_ACCESS_KEY: keystone
# this doesn't mean anything when we're using a custom s3 endpoint but the sdk wants something so we just give it something
S3_REGION: us-east-1
DATABASE_URL: postgres://testuser:testpass@localhost:5432/test_db
field_crud_tests_sqlite:
name: Field CRUD Tests SQLite
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Setup local S3 bucket
run: bash ./.github/workflows/s3-bucket.sh
- name: Unit tests
run: pnpm jest --ci tests/api-tests/fields/crud
env:
S3_ENDPOINT: http://127.0.0.1:9000/
S3_FORCE_PATH_STYLE: true
S3_BUCKET_NAME: keystone-test
S3_ACCESS_KEY_ID: keystone
S3_SECRET_ACCESS_KEY: keystone
# this doesn't mean anything when we're using a custom s3 endpoint but the sdk wants something so we just give it something
S3_REGION: us-east-1
DATABASE_URL: file:./test.db
field_crud_tests_mysql:
name: Field CRUD Tests MySQL
runs-on: ubuntu-latest
timeout-minutes: 10
services:
mysql:
image: mariadb:11.7
env:
MYSQL_ROOT_PASSWORD: testpass
ports:
- 3306:3306
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Setup local S3 bucket
run: bash ./.github/workflows/s3-bucket.sh
- name: Unit tests
run: pnpm jest --ci tests/api-tests/fields/crud
env:
S3_ENDPOINT: http://127.0.0.1:9000/
S3_FORCE_PATH_STYLE: true
S3_BUCKET_NAME: keystone-test
S3_ACCESS_KEY_ID: keystone
S3_SECRET_ACCESS_KEY: keystone
# this doesn't mean anything when we're using a custom s3 endpoint but the sdk wants something so we just give it something
S3_REGION: us-east-1
DATABASE_URL: mysql://root:testpass@localhost:3306/test_db
examples_tests:
name: Testing example project
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- name: Example unit tests
run: cd examples/testing && pnpm keystone postinstall && pnpm test
examples_next_app_build:
name: Ensure Next in App directory builds
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- name: Example Next in app directory build
run: cd examples/framework-nextjs-app-directory; pnpm build
examples_smoke_tests:
name: Smoke Tests For Examples
runs-on: ubuntu-latest
timeout-minutes: 10
env:
DATABASE_URL: file:./test.db
strategy:
matrix:
test:
[
'auth.test.ts',
'custom-admin-ui-logo.test.ts',
'custom-admin-ui-navigation.test.ts',
'custom-admin-ui-pages.test.ts',
'custom-field.test.ts',
'default-values.test.ts',
'document-field.test.ts',
'extend-express-app.test.ts',
'extend-graphql-schema-graphql-tools.test.ts',
'extend-graphql-schema-graphql-ts.test.ts',
'extend-graphql-schema-nexus.test.ts',
'testing.test.ts',
'usecase-blog.test.ts',
'usecase-roles.test.ts',
'usecase-todo.test.ts',
'virtual-field.test.ts',
'field-groups.test.ts',
]
fail-fast: false
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- name: Install Dependencies of Browsers
run: cd tests/examples-smoke-tests && pnpm playwright install-deps chromium
- name: Install Browsers
run: cd tests/examples-smoke-tests && pnpm playwright install chromium
- name: Unit tests
run: pnpm jest --ci tests/examples-smoke-tests/${{ matrix.test }}
admin_ui_integration_tests:
name: Integration tests for Admin UI
runs-on: ubuntu-latest
timeout-minutes: 10
env:
DATABASE_URL: file:./test.db
strategy:
matrix:
test:
[
'init.test.ts',
'filters.test.ts',
'list-view-crud.test.ts',
'navigation.test.ts',
'live-reloading.test.ts',
'relations.test.ts',
]
fail-fast: false
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- name: Install Dependencies of Browsers
run: cd tests/admin-ui-tests && pnpm playwright install-deps chromium
- name: Install Browsers
run: cd tests/admin-ui-tests && pnpm playwright install chromium
- name: Unit tests
run: pnpm jest --ci --runInBand --forceExit tests/admin-ui-tests/${{ matrix.test }}