Files
directus/.github/workflows/check.yml
Nitwel fdf22743ce Introduce improve BB arch (#26996)
* move over load tests

* initial commit

* separate code from loadtests into separate sandbox package

* make command run parallel many times

* start with blackbox v2

* remove old loadtests

* add scale option and work on tests

* restructure and github workflow

* update workflow

* fmt

* update tests

* fix tests

* make vitest run everything

* fix lock

* fix test

* tests

* add tmpfs

* no tmpfs oracle

* optimize installing and building for tests

* update packages

* update building

* fix build

* update build

* fix pnpm lock

* fix deps

* fix building api

* fmt

* fix types build

* fix oas

* fix oas build

* no app

* undo package changes

* undo faster building tests

* cleanup

* fix

* fix lock

* update packages

* lot of improvements

* add first proper tests

* no tmpfs for mssql

* test

* speedup oracle and improve sandbox

* add more primitive tests

* small tweak

* make collection names unique and add auto exporting of schema to sandbox

* fix type gen

* temp commit

* prevent snapshot apply collisions

* fix oracle schema apply

* add healthchecks and cleanup deps

* fix setup

* fix lock

* fmt

* add retries to schema apply

* unused import...

* ups

* update healthcheck times

* fix imports and work on relational tests

* add all relational tests

* finish relational tests and start with basic auth tests

* somewhat fix sandbox for windows

* cleanup and make workflows run

* test password resetting

* add schema option to sandbox and add basic filter tests

* restructure sandbox, link globally and add basic fields tests

* fmt

* make sure to sort

* exclude oracle test cause oracle

* add files test and cleanup expects

* start testing assets

* add tests for assets and websocket subscriptions

* run fmt

* fix mssql tests

* update options of snadbox

* fix building sandbox

* log auth creds when starting api

* log creds for db

* color creds

* start with perm tests and fix dev watch

* finish perm tests, add inspect option and fix dev and watch

* add port detection and killing

* fix port allocation

* add gql tests

* finish up horrizontal testing

* start testing collections

* test collection crud

* update coll tests

* add readmes to sandbox and e2e tests

* update readme

* update readme

* add test for log redacting

* work on auth tests

* add files tests

* fix killing processes, rerunning test:all and add health/ping tests

* add silent option to sandbox, fix files tests, improve health tests

* format

* run github action tests in parallel

* improve testing across dbs

* fix assets and gql tests

* fix healthchecks and clean up logs

* increase horriz timeout

* fix types

* add permission/me tests and improve sandbox

* restructure tests

* add flow/webhook tests

* add saml tests

* add flow sync test

* add cache tests and update sandbox

* add old files tests

* port schema cache tests

* start migrating cache-purge

* fix cache purge tests

* make database and port into constants

* simplify useSnapshot and add getUID function

* add schema tests

* fix schema tests

* migrate all websocket tests

* finish migrationg field change tests

* fix tests and don't kill ports

* cleanup

* test

* format

* use non colliding ports on sandbox

* fix sandbox cli

* fix

* add version option to sandbox

* find api folder automatically

* fix docker imports

* remove killPorts

* add project owner env

* try adding flamegraph

* Revert "try adding flamegraph"

This reverts commit 2f3010f84a.

* fix ts

* add app option to sandbox

* fix app

* fix docker pulling on arm64

* update

* fmt imports and cleanup

* fix sandbox building

* more test improvements

* more updates

* docs

* fix gql test

* fix, thanks AI

* update readme

* make bb tests run consistently

* more fixes

* test docker availability and cleanup

* fix flows reloading being awaited

* fix assets endpoint

* add new sandbox test system

* cleanup SchemaApplyOrder

* improve readme and cleanup all tests

* update sandbox desc and cli

* hardcode platform

* update runners

* fmt

* add changeset

* cleanup

* fix test

* update runner

* update health tests

* fix health checks

* update asset test

* fmt

* fix tests on maria

* add console.logs

* run tests parallel

* fix health tests

* increase test timeout

* run tests seq again

* clean up and remove some sb tests

* update e2e runner

* update sb tests

* don't edit system fields in snapshots

* fix test

* remove schema snapshot tests

* cleanup

* dont postinstall link

* cleanup deps

* update timeouts

* undo cherry picked changes

* update package.json

* Adjust changeset

* Fix cli bin not found

* fix

* add back duplicate dep

* move up dep on more placement :)

* improve flakyness

* fix2

* remove unused imports

---------

Co-authored-by: judda <44623501+ComfortablyCoding@users.noreply.github.com>
2026-04-20 11:46:51 -04:00

114 lines
3.0 KiB
YAML

name: Check
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
contents: read
concurrency:
group: check-${{ github.ref }}
cancel-in-progress: true
env:
NODE_OPTIONS: --max_old_space_size=6144
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
- name: Prepare
uses: ./.github/actions/prepare
with:
build: false
- name: Run Linter
run: pnpm exec eslint ${{ steps.changed-files.outputs.all_changed_files }}
stylelint:
name: Stylelint
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
- name: Prepare
uses: ./.github/actions/prepare
with:
build: false
- name: Run Stylelinter
run: pnpm exec stylelint ${{ steps.changed-files.outputs.all_changed_files }} --allow-empty-input
format:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v47
- name: Prepare
uses: ./.github/actions/prepare
with:
build: false
- name: Run Formatter
run: pnpm exec prettier --check --ignore-unknown ${{ steps.changed-files.outputs.all_changed_files }}
unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
# This currently builds all packages in the repo. Ideally we add build: false here as well
# to save minutes building the repo, but that'd require us refactoring the tests to stop
# using @directus/* packages within tests
- name: Prepare
uses: ./.github/actions/prepare
- name: Run Tests
run: pnpm test:coverage --passWithNoTests
- name: Upload coverage to Codecov
continue-on-error: true
run: |
# Download and install Codecov uploader
curl -Os https://cli.codecov.io/latest/linux/codecov
chmod +x codecov
# Find all coverage files and upload them with flags based on folder names
find . -name "coverage-final.json" -path "*/coverage/*" | while read -r coverage_file; do
# Extract the folder name that contains the coverage directory
folder_name=$(echo "$coverage_file" | sed -E 's|.*/(.*)/coverage/.*|\1|')
echo "Uploading coverage for $folder_name from $coverage_file"
# Upload to codecov with folder name as flag
./codecov upload-coverage -f "$coverage_file" -F "$folder_name" -Z --disable-search
done