@theholocron/cli 5.0.0-alpha.162 → 5.0.0-alpha.164
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +52 -19
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -237,7 +237,8 @@ interface EnvConfig {
|
|
|
237
237
|
namespaces?: string[];
|
|
238
238
|
}
|
|
239
239
|
/**
|
|
240
|
-
* A single Chromatic project entry in a
|
|
240
|
+
* A single Chromatic project entry in a `verification.visualRegression`
|
|
241
|
+
* task's `chromatic-projects` config.
|
|
241
242
|
* Each entry produces one matrix job in CI, publishing to a separate Chromatic project.
|
|
242
243
|
*
|
|
243
244
|
* The `tokenName` maps to a repository secret named `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`.
|
|
@@ -299,8 +300,9 @@ interface StorybookDeployProject {
|
|
|
299
300
|
/**
|
|
300
301
|
* Typed `with:` inputs for reusable workflows.
|
|
301
302
|
*
|
|
302
|
-
* `
|
|
303
|
-
* `ChromaticProjectConfig[]`
|
|
303
|
+
* `chromatic-projects` (on the `verification.visualRegression` task) takes a
|
|
304
|
+
* `ChromaticProjectConfig[]` directly; each entry's `untraced` glob list may
|
|
305
|
+
* be authored as an array and is newline-joined for you.
|
|
304
306
|
*
|
|
305
307
|
* `docs` / `storybook` are high-level deploy shorthand that `holocron repo setup`
|
|
306
308
|
* translates to `type` / `storybook-projects` before writing the thin caller.
|
|
@@ -308,9 +310,7 @@ interface StorybookDeployProject {
|
|
|
308
310
|
* `paths:` manually for deploy entries.
|
|
309
311
|
*/
|
|
310
312
|
type WorkflowWithConfig = Record<string, unknown> & {
|
|
311
|
-
"
|
|
312
|
-
projects: ChromaticProjectConfig[];
|
|
313
|
-
};
|
|
313
|
+
"chromatic-projects"?: ChromaticProjectConfig[];
|
|
314
314
|
/**
|
|
315
315
|
* Docs deployment shorthand. `true` uses the org-standard `docs/` directory;
|
|
316
316
|
* `{ path: "custom" }` uses a custom directory. Both derive a `paths:` entry automatically.
|
|
@@ -336,6 +336,25 @@ interface TaskEntryConfig {
|
|
|
336
336
|
local?: boolean;
|
|
337
337
|
/** The task's CI check context is a required status check + part of `holocron run ci`'s default run. */
|
|
338
338
|
required?: boolean;
|
|
339
|
+
/**
|
|
340
|
+
* Per-repo additions to this task's generated `turbo.json` entry —
|
|
341
|
+
* a separate channel from `with:` (that's the reusable *workflow's*
|
|
342
|
+
* inputs; this is local turbo cache config, unrelated). No-op for a
|
|
343
|
+
* task with no turbo fan-out config in the registry. Mirrors
|
|
344
|
+
* astromech's own `TaskEntry["turbo"]` — kept in sync by hand, since
|
|
345
|
+
* this package doesn't depend on astromech directly.
|
|
346
|
+
*/
|
|
347
|
+
turbo?: {
|
|
348
|
+
/** Extra env vars turbo hashes into this task's cache key, appended to the registry default. */
|
|
349
|
+
passThroughEnv?: string[];
|
|
350
|
+
/**
|
|
351
|
+
* Extra input globs appended to the registry default's `inputs`
|
|
352
|
+
* (holocron#845) — for a package whose layout the registry
|
|
353
|
+
* default doesn't cover (e.g. a flat-layout package with no
|
|
354
|
+
* `src/` directory at all).
|
|
355
|
+
*/
|
|
356
|
+
inputs?: string[];
|
|
357
|
+
};
|
|
339
358
|
}
|
|
340
359
|
interface HolocronConfig {
|
|
341
360
|
/** Project name. Derived from package.json when absent. */
|
|
@@ -371,7 +390,7 @@ interface HolocronConfig {
|
|
|
371
390
|
* workflows / `package.json` scripts.
|
|
372
391
|
*
|
|
373
392
|
* Supported values (intent-facing vocabulary — epic #672, D3):
|
|
374
|
-
* "verification.unitTests" | "verification.typeSafety" | "verification.performance" |
|
|
393
|
+
* "verification.unitTests" | "verification.visualRegression" | "verification.typeSafety" | "verification.performance" |
|
|
375
394
|
* "sourceQuality.staticAnalysis" | "sourceQuality.formatting" |
|
|
376
395
|
* "sourceQuality.structuredDataValidation" | "sourceQuality.deadCodeAnalysis" |
|
|
377
396
|
* "security.secretDetection" | "security.codeScanning" |
|
|
@@ -415,23 +434,37 @@ interface HolocronConfig {
|
|
|
415
434
|
* { name: "delivery.deploy", with: { docs: { path: "packages/site" } } }
|
|
416
435
|
* ```
|
|
417
436
|
*
|
|
418
|
-
* ###
|
|
419
|
-
*
|
|
420
|
-
* `
|
|
437
|
+
* ### verification.visualRegression
|
|
438
|
+
* Its own task, not a `verification.unitTests` sub-job (holocron#394/#1062)
|
|
439
|
+
* — GitHub evaluates a job's `if:` before expanding its `strategy.matrix`,
|
|
440
|
+
* so no `chromatic-projects` default can make a *disabled* Chromatic job
|
|
441
|
+
* disappear from PR checks; only not generating the job at all does. Omit
|
|
442
|
+
* this task entirely for a repo that doesn't use Chromatic — no workflow,
|
|
443
|
+
* no job, no check, not even a skipped one.
|
|
444
|
+
*
|
|
445
|
+
* For a single-project repo, use a `CHROMATIC_PROJECT_TOKEN` repository
|
|
446
|
+
* secret with `tokenName: "default"`:
|
|
447
|
+
* ```ts
|
|
448
|
+
* {
|
|
449
|
+
* name: "verification.visualRegression",
|
|
450
|
+
* with: { "chromatic-projects": [{ tokenName: "default", workingDir: "." }] },
|
|
451
|
+
* }
|
|
452
|
+
* ```
|
|
421
453
|
*
|
|
422
|
-
* For monorepos with multiple Storybooks,
|
|
454
|
+
* For monorepos with multiple Storybooks, list one entry per project:
|
|
423
455
|
* ```ts
|
|
424
|
-
*
|
|
425
|
-
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
456
|
+
* {
|
|
457
|
+
* name: "verification.visualRegression",
|
|
458
|
+
* with: {
|
|
459
|
+
* "chromatic-projects": [
|
|
460
|
+
* { tokenName: "WEB", workingDir: "apps/web" },
|
|
461
|
+
* { tokenName: "UI", workingDir: "packages/ui" },
|
|
462
|
+
* ],
|
|
463
|
+
* },
|
|
429
464
|
* }
|
|
430
465
|
* ```
|
|
431
466
|
* Each `tokenName` maps to a repository secret named
|
|
432
|
-
* `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`.
|
|
433
|
-
* to the flat `run-chromatic: true` + `chromatic-projects: <json>` inputs
|
|
434
|
-
* that the reusable workflow accepts.
|
|
467
|
+
* `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`.
|
|
435
468
|
*
|
|
436
469
|
* @example
|
|
437
470
|
* ["sourceQuality.staticAnalysis", { "name": "delivery.publish", "with": { "run-build": false } }]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theholocron/cli",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.164",
|
|
4
4
|
"description": "The Holocron CLI - a pluggable, capability-based orchestrator for spinning up and operating software projects.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"pino-pretty": "^13.1.3",
|
|
64
64
|
"posthog-node": "^5.51.6",
|
|
65
65
|
"yargs": "^18.1.0",
|
|
66
|
-
"@theholocron/astromech": "5.0.0-alpha.
|
|
67
|
-
"@theholocron/datapad": "5.0.0-alpha.
|
|
66
|
+
"@theholocron/astromech": "5.0.0-alpha.164",
|
|
67
|
+
"@theholocron/datapad": "5.0.0-alpha.164"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@theholocron/eslint-config": "^8.8.0",
|