Repository navigation
Expand file tree
/
Copy pathturbo.json
More file actions
107 lines (107 loc) · 3.83 KB
/
Copy pathturbo.json
File metadata and controls
107 lines (107 loc) · 3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{
"$schema": "https://v2-11-10.turborepo.dev/schema.json",
"ui": "tui",
// Root tsconfig extended by packages/database and packages/business; turbo
// cannot see it from either workspace, so declare it or edits to it hit cache
// and are skipped by `--filter=...[HEAD]`.
"globalDependencies": ["tsconfig.base.json"],
"tasks": {
"build": {
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$", ".env*"],
"outputs": [".next/**", "!.next/cache/**", "dist/**"],
"passThroughEnv": [
"BETTER_AUTH_SECRET",
"BETTER_AUTH_URL",
"SUPPORT_ACCESS_REQUIRE_CONSENT",
"AUTH_DISABLE_SIGNUP",
"AUTH_OAUTH_ENABLED",
"AUTH_OAUTH_CLIENT_ID",
"AUTH_OAUTH_CLIENT_SECRET",
"AUTH_OAUTH_DISCOVERY_URL",
"AUTH_OAUTH_AUTH_URL",
"AUTH_OAUTH_TOKEN_URL",
"AUTH_OAUTH_USERINFO_URL",
"AUTH_OAUTH_SCOPES",
"AUTH_OAUTH_TRUST_EMAIL",
"AUTH_OAUTH_DISABLE_NONCE_BINDING",
"NEXT_PUBLIC_AUTH_OAUTH_DISPLAY_NAME",
"NEXT_PUBLIC_AUTH_OAUTH_LOGO_URL"
]
},
// No `dependsOn: ["^lint"]`: Biome lints every file independently, so the
// fan-in conveyed no ordering. Worse, only builder defines a real `lint`
// script — the other 57 workspace tasks are <NONEXISTENT> placeholders
// that turbo still scheduled and hash-checked behind the chain.
"lint": {},
// No `dependsOn: ["^check-types"]`: nothing in this repo sets `composite`
// or `references`, and every package `exports` resolves to `./src/*.ts`
// (no package ships a `dist`). So each `tsc --noEmit` re-parses its
// dependencies' source itself and consumes nothing a prior task emitted —
// the edge transmitted no data and only serialized 56 tasks 13 deep.
//
// Locally only apps/builder and packages/ui set `incremental: true` and
// emit a tsbuildinfo, so `outputs` is declared in their own turbo.json
// (a root-level key makes turbo warn "no output files found" elsewhere).
// CI passes `--incremental` to every task and caches the files itself.
// `transit` is a no-op (no workspace defines the script) that chains to
// every workspace dependency. `check-types` and `test` depend on it so
// their hash covers the source of the internal packages they import:
// without it, a change to packages/business or packages/realtime-protocol
// left builder's and worker's cached results valid, and CI replayed them
// instead of re-running. Unlike `^check-types`/`^test`, the edge adds no
// ordering between real tasks — transit tasks finish instantly.
"transit": {
"dependsOn": ["^transit"]
},
"check-types": {
"dependsOn": ["transit"]
},
"test": {
"dependsOn": ["transit"],
"inputs": [
"$TURBO_DEFAULT$",
".env*",
"vitest.config.ts",
"vitest.config.*.ts",
"**/__tests__/**",
"**/*.test.ts",
"**/*.test.tsx",
"**/*.spec.ts",
"**/*.spec.tsx"
],
"outputs": [],
// turbo runs in strict env mode, so without this the escape hatch in
// packages/vitest-config/src/node.ts never reaches vitest through
// `turbo run test` — which is how CI invokes it. passThroughEnv (not
// env) is deliberate: worker count changes timing, not test results, so
// it must not become part of the cache hash.
"passThroughEnv": ["VITEST_MAX_WORKERS"]
},
"dev": {
"cache": false,
"persistent": true
},
"https": {
"cache": false,
"persistent": true
},
"packages:dev": {
"cache": false,
"persistent": true
},
"db:migrate": {
"cache": false,
"persistent": true
},
"db:setup": {
"cache": false
},
"db:reset": {
"cache": false
},
"db:studio": {
"cache": false
}
}
}