-
Notifications
You must be signed in to change notification settings - Fork 0
⭐ CI and Docker
17 workflows under .github/workflows/ plus the shared .github/actions/prepare composite action, all migrated off pnpm: pnpm exec → yarn exec, pnpm run → yarn run, pnpm --recursive publish → yarn workspaces foreach --all --no-private npm publish, pnpm-lock.yaml path-trigger filters → yarn.lock. Repo-identity guards in the maintenance workflows (stale-issue/PR closers) updated from directus/directus to Terrence721/directus-main — otherwise those scheduled jobs would silently never fire on this fork.
Check is green (lint, format, build, unit test) — exercised against real pushes, not just written and assumed to work. Getting there took two real fixes: the Build step was originally yarn workspaces foreach -A -t run build, attempting all 40 workspaces when only directus has real source — scoped to --include directus in both the root package.json script and (separately, since it's a hardcoded call, not a call to the root script) .github/actions/prepare/action.yml's own Build step. See Yarn Migration for the isolated-vm fix that got Prepare itself passing first.
blackbox.yml/e2e.yml gated, not fixed. e2e.yml's Run tests is if: false until tests/e2e has real test files. blackbox.yml needed more: its docker-compose steps (Start services/Start database/MSSQL Set Compatibility Level) reference tests/blackbox/docker-compose.yml, which doesn't exist either — that file failing outright (no such file or directory) is what caught it, not a rerun of the same error. All of those are if: false now too. Only Checkout/Prepare stay active in both workflows — same practice as eShop-full's MAUI/Playwright gating, with the re-enable condition written in each workflow's comment — see Known Gaps.
Several workflows still reference secrets (CLAUDE_CODE_OAUTH_TOKEN, RELEASE_PAT, DOCKERHUB_USERNAME/PASSWORD, SLACK_WEBHOOK_CMS_FREEZE) not configured on Terrence721/directus-main yet — e.g. Sync Readme to Docker Hub fails until those are set.
Both Dockerfile and Dockerfile.dhi (the hardened/distroless variant) updated: NODE_VERSION 22→26, npm install -g corepack added (recent Node builds don't bundle it), and pnpm fetch's Docker-cache pre-warming dropped (no Yarn equivalent — see Yarn Migration).
🏁 pnpm deploy --legacy --prod — used by both Dockerfiles to build a standalone production bundle — has no Yarn equivalent either. Replaced with scripts/deploy-production.mjs, built on yarn workspaces focus directus --production. Non-destructive: an initial version pruned the repo's own root node_modules in place — a real regression from pnpm's original behavior — corrected to run the focus/copy steps inside a disposable git worktree instead, so the live working tree's node_modules is never touched. Verified end-to-end: dist/ came out with a working node_modules and a correct package.json.
Neither Dockerfile has been build-tested end-to-end yet — see Known Gaps.