Skip to content

Fix search filters and add support to search by relationships in the list view #2905

Fix search filters and add support to search by relationships in the list view

Fix search filters and add support to search by relationships in the list view #2905

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
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
linting-examples:
name: Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- name: TypeScript
run: pnpm test:types
unit_tests:
name: Package Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup
- name: Unit tests
run: DATABASE_URL=file:./test.db pnpm jest --ci --testPathIgnorePatterns=admin-ui-tests --testPathIgnorePatterns=api-tests --testPathIgnorePatterns=examples-smoke-tests --testPathIgnorePatterns=examples/testing
graphql_api_tests_postgresql:
name: API Tests PostgreSQL
runs-on: ubuntu-latest
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
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
services:
mysql:
image: mariadb:11.5
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
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
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
services:
mysql:
image: mariadb:11.5
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
steps:
- uses: actions/checkout@main
- uses: ./.github/actions/ci-setup-examples
- name: Example unit tests
run: cd examples/testing; pnpm test
examples_next_app_build:
name: Ensure Next in App directory builds
runs-on: ubuntu-latest
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
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-view.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',
]
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
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 tests/admin-ui-tests/${{ matrix.test }}