@smoothbricks/cli 0.1.0 → 0.2.0
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/README.md +338 -88
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +136 -22
- package/dist/devenv/index.d.ts +10 -0
- package/dist/devenv/index.d.ts.map +1 -0
- package/dist/devenv/index.js +27 -0
- package/dist/lib/cli-package.d.ts +4 -0
- package/dist/lib/cli-package.d.ts.map +1 -0
- package/dist/lib/cli-package.js +15 -0
- package/dist/lib/devenv.d.ts +6 -0
- package/dist/lib/devenv.d.ts.map +1 -0
- package/dist/lib/devenv.js +82 -0
- package/dist/lib/run.d.ts +5 -0
- package/dist/lib/run.d.ts.map +1 -1
- package/dist/lib/run.js +13 -0
- package/dist/lib/workspace.d.ts +20 -1
- package/dist/lib/workspace.d.ts.map +1 -1
- package/dist/lib/workspace.js +87 -7
- package/dist/monorepo/commit-msg.d.ts +8 -1
- package/dist/monorepo/commit-msg.d.ts.map +1 -1
- package/dist/monorepo/commit-msg.js +85 -7
- package/dist/monorepo/index.d.ts +24 -2
- package/dist/monorepo/index.d.ts.map +1 -1
- package/dist/monorepo/index.js +136 -15
- package/dist/monorepo/lockfile.d.ts +5 -1
- package/dist/monorepo/lockfile.d.ts.map +1 -1
- package/dist/monorepo/lockfile.js +45 -5
- package/dist/monorepo/managed-files.d.ts +1 -1
- package/dist/monorepo/managed-files.d.ts.map +1 -1
- package/dist/monorepo/managed-files.js +28 -11
- package/dist/monorepo/nx-sync.d.ts +2 -1
- package/dist/monorepo/nx-sync.d.ts.map +1 -1
- package/dist/monorepo/nx-sync.js +8 -2
- package/dist/monorepo/package-hygiene.d.ts +6 -2
- package/dist/monorepo/package-hygiene.d.ts.map +1 -1
- package/dist/monorepo/package-hygiene.js +12 -4
- package/dist/monorepo/package-policy.d.ts +25 -2
- package/dist/monorepo/package-policy.d.ts.map +1 -1
- package/dist/monorepo/package-policy.js +1289 -27
- package/dist/monorepo/packed-manifest.d.ts +4 -0
- package/dist/monorepo/packed-manifest.d.ts.map +1 -0
- package/dist/monorepo/packed-manifest.js +51 -0
- package/dist/monorepo/packed-package.d.ts +3 -0
- package/dist/monorepo/packed-package.d.ts.map +1 -1
- package/dist/monorepo/packed-package.js +69 -31
- package/dist/monorepo/packs/index.d.ts +20 -1
- package/dist/monorepo/packs/index.d.ts.map +1 -1
- package/dist/monorepo/packs/index.js +240 -18
- package/dist/monorepo/publish-workflow.d.ts +82 -0
- package/dist/monorepo/publish-workflow.d.ts.map +1 -0
- package/dist/monorepo/publish-workflow.js +336 -0
- package/dist/monorepo/tool-validation.d.ts +22 -0
- package/dist/monorepo/tool-validation.d.ts.map +1 -0
- package/dist/monorepo/tool-validation.js +399 -0
- package/dist/nx/index.d.ts +24 -0
- package/dist/nx/index.d.ts.map +1 -0
- package/dist/nx/index.js +94 -0
- package/dist/nx-version-actions.cjs +25 -0
- package/dist/nx-version-actions.d.cts +6 -0
- package/dist/nx-version-actions.d.cts.map +1 -0
- package/dist/release/bootstrap-npm-packages.d.ts +19 -0
- package/dist/release/bootstrap-npm-packages.d.ts.map +1 -0
- package/dist/release/bootstrap-npm-packages.js +58 -0
- package/dist/release/candidates.d.ts +11 -0
- package/dist/release/candidates.d.ts.map +1 -0
- package/dist/release/candidates.js +181 -0
- package/dist/release/core.d.ts +51 -0
- package/dist/release/core.d.ts.map +1 -0
- package/dist/release/core.js +97 -0
- package/dist/release/github-release.d.ts +46 -0
- package/dist/release/github-release.d.ts.map +1 -0
- package/dist/release/github-release.js +97 -0
- package/dist/release/index.d.ts +39 -5
- package/dist/release/index.d.ts.map +1 -1
- package/dist/release/index.js +763 -130
- package/dist/release/npm-auth.d.ts +16 -0
- package/dist/release/npm-auth.d.ts.map +1 -0
- package/dist/release/npm-auth.js +39 -0
- package/dist/release/orchestration.d.ts +49 -0
- package/dist/release/orchestration.d.ts.map +1 -0
- package/dist/release/orchestration.js +113 -0
- package/dist/release/publish-plan.d.ts +17 -0
- package/dist/release/publish-plan.d.ts.map +1 -0
- package/dist/release/publish-plan.js +15 -0
- package/dist/release/retag-unpublished.d.ts +34 -0
- package/dist/release/retag-unpublished.d.ts.map +1 -0
- package/dist/release/retag-unpublished.js +77 -0
- package/managed/raw/git-format-staged.yml +54 -0
- package/managed/raw/tooling/git-hooks/commit-msg.sh +1 -1
- package/managed/raw/tooling/git-hooks/pre-commit.sh +2 -7
- package/managed/templates/github/actions/setup-devenv/action.yml +1 -7
- package/managed/templates/github/workflows/ci.yml +3 -0
- package/package.json +37 -4
- package/src/cli.ts +193 -40
- package/src/devenv/index.test.ts +49 -0
- package/src/devenv/index.ts +38 -0
- package/src/lib/cli-package.ts +18 -0
- package/src/lib/devenv.test.ts +28 -0
- package/src/lib/devenv.ts +89 -0
- package/src/lib/run.ts +19 -0
- package/src/lib/workspace.ts +117 -7
- package/src/monorepo/__tests__/nx-version-actions.test.ts +75 -0
- package/src/monorepo/__tests__/publish-workflow.test.ts +322 -0
- package/src/monorepo/commit-msg.test.ts +45 -0
- package/src/monorepo/commit-msg.ts +107 -7
- package/src/monorepo/index.ts +181 -15
- package/src/monorepo/lockfile.ts +52 -7
- package/src/monorepo/managed-files.ts +43 -13
- package/src/monorepo/nx-sync.ts +9 -2
- package/src/monorepo/package-hygiene.test.ts +34 -0
- package/src/monorepo/package-hygiene.ts +26 -4
- package/src/monorepo/package-policy.test.ts +902 -0
- package/src/monorepo/package-policy.ts +1527 -25
- package/src/monorepo/packed-manifest.ts +67 -0
- package/src/monorepo/packed-package.ts +90 -31
- package/src/monorepo/packs/index.test.ts +189 -0
- package/src/monorepo/packs/index.ts +314 -19
- package/src/monorepo/publish-workflow.ts +422 -0
- package/src/monorepo/setup-test-tracing.test.ts +120 -0
- package/src/monorepo/tool-validation.test.ts +261 -0
- package/src/monorepo/tool-validation.ts +462 -0
- package/src/nx/index.test.ts +64 -0
- package/src/nx/index.ts +119 -0
- package/src/nx-version-actions.cts +36 -0
- package/src/release/__tests__/bootstrap-npm-packages.test.ts +127 -0
- package/src/release/__tests__/candidates.test.ts +217 -0
- package/src/release/__tests__/core-properties.test.ts +149 -0
- package/src/release/__tests__/core-scenarios.test.ts +187 -0
- package/src/release/__tests__/core.test.ts +73 -0
- package/src/release/__tests__/fixture-repo.test.ts +314 -0
- package/src/release/__tests__/github-release.test.ts +149 -0
- package/src/release/__tests__/helpers/fixture-repo.ts +114 -0
- package/src/release/__tests__/npm-auth.test.ts +120 -0
- package/src/release/__tests__/orchestration.test.ts +246 -0
- package/src/release/__tests__/publish-plan.test.ts +67 -0
- package/src/release/__tests__/retag-unpublished.test.ts +160 -0
- package/src/release/__tests__/trust-publisher.test.ts +133 -0
- package/src/release/bootstrap-npm-packages.ts +88 -0
- package/src/release/candidates.ts +225 -0
- package/src/release/core.ts +171 -0
- package/src/release/github-release.ts +134 -0
- package/src/release/index.ts +974 -138
- package/src/release/npm-auth.ts +93 -0
- package/src/release/orchestration.ts +196 -0
- package/src/release/publish-plan.ts +37 -0
- package/src/release/retag-unpublished.ts +122 -0
- package/managed/raw/.git-format-staged.yml +0 -47
- package/managed/templates/github/workflows/publish.yml +0 -136
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PackageInfo } from '../lib/workspace.js';
|
|
2
|
+
export declare function readPackedPackageJson(root: string, tarball: string, packageName: string): Promise<Record<string, unknown>>;
|
|
3
|
+
export declare function validatePackedWorkspaceDependencies(root: string, sourcePackage: PackageInfo, packedPackage: Record<string, unknown>): string[];
|
|
4
|
+
//# sourceMappingURL=packed-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packed-manifest.d.ts","sourceRoot":"","sources":["../../src/monorepo/packed-manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAUlC;AAED,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,WAAW,EAC1B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,MAAM,EAAE,CAoCV"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { $ } from 'bun';
|
|
2
|
+
import { isRecord, recordProperty } from '../lib/json.js';
|
|
3
|
+
import { decode } from '../lib/run.js';
|
|
4
|
+
import { getWorkspacePackages, workspaceDependencyFields } from '../lib/workspace.js';
|
|
5
|
+
export async function readPackedPackageJson(root, tarball, packageName) {
|
|
6
|
+
const result = await $ `tar -xOf ${tarball} package/package.json`.cwd(root).quiet().nothrow();
|
|
7
|
+
if (result.exitCode !== 0) {
|
|
8
|
+
throw new Error(`${packageName}: unable to inspect packed package.json.`);
|
|
9
|
+
}
|
|
10
|
+
const parsed = JSON.parse(decode(result.stdout));
|
|
11
|
+
if (!isRecord(parsed)) {
|
|
12
|
+
throw new Error(`${packageName}: packed package.json is not an object.`);
|
|
13
|
+
}
|
|
14
|
+
return parsed;
|
|
15
|
+
}
|
|
16
|
+
export function validatePackedWorkspaceDependencies(root, sourcePackage, packedPackage) {
|
|
17
|
+
const workspaceVersions = new Map(getWorkspacePackages(root).map((pkg) => [pkg.name, pkg.version]));
|
|
18
|
+
const failures = [];
|
|
19
|
+
for (const field of workspaceDependencyFields) {
|
|
20
|
+
const sourceDependencies = recordProperty(sourcePackage.json, field);
|
|
21
|
+
const packedDependencies = recordProperty(packedPackage, field);
|
|
22
|
+
if (!sourceDependencies && !packedDependencies) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
for (const [name, range] of Object.entries(packedDependencies ?? {})) {
|
|
26
|
+
if (typeof range === 'string' && range.startsWith('workspace:')) {
|
|
27
|
+
failures.push(`${sourcePackage.path}: packed ${field}.${name} must not contain ${range}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (!sourceDependencies) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
for (const [name, sourceRange] of Object.entries(sourceDependencies)) {
|
|
34
|
+
const workspaceVersion = workspaceVersions.get(name);
|
|
35
|
+
if (!workspaceVersion) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const packedRange = packedDependencies?.[name];
|
|
39
|
+
if (sourceRange !== 'workspace:*') {
|
|
40
|
+
failures.push(`${sourcePackage.path}: source ${field}.${name} must use workspace:*`);
|
|
41
|
+
}
|
|
42
|
+
if (packedRange !== workspaceVersion) {
|
|
43
|
+
failures.push(`${sourcePackage.path}: packed ${field}.${name} must be ${workspaceVersion}, got ${formatRange(packedRange)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return failures;
|
|
48
|
+
}
|
|
49
|
+
function formatRange(value) {
|
|
50
|
+
return typeof value === 'string' ? value : '<missing>';
|
|
51
|
+
}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
export declare function validatePackedPublicPackages(root: string): Promise<number>;
|
|
2
|
+
export declare function validatePackedPublicPackagePublint(root: string): Promise<number>;
|
|
3
|
+
export declare function validatePackedPublicPackageManifest(root: string): Promise<number>;
|
|
4
|
+
export declare function validatePackedPublicPackageTypes(root: string): Promise<number>;
|
|
2
5
|
//# sourceMappingURL=packed-package.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packed-package.d.ts","sourceRoot":"","sources":["../../src/monorepo/packed-package.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"packed-package.d.ts","sourceRoot":"","sources":["../../src/monorepo/packed-package.ts"],"names":[],"mappings":"AAUA,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;AAED,wBAAsB,kCAAkC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtF;AAED,wBAAsB,mCAAmC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMvF;AAED,wBAAsB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMpF"}
|
|
@@ -3,58 +3,96 @@ import { join } from 'node:path';
|
|
|
3
3
|
import { publint } from 'publint';
|
|
4
4
|
import { formatMessage } from 'publint/utils';
|
|
5
5
|
import { isRecord } from '../lib/json.js';
|
|
6
|
-
import { runStatus } from '../lib/run.js';
|
|
6
|
+
import { runResult, runStatus } from '../lib/run.js';
|
|
7
7
|
import { listPublicPackages } from '../lib/workspace.js';
|
|
8
|
+
import { readPackedPackageJson, validatePackedWorkspaceDependencies } from './packed-manifest.js';
|
|
8
9
|
export async function validatePackedPublicPackages(root) {
|
|
10
|
+
return ((await validatePackedPublicPackagePublint(root)) +
|
|
11
|
+
(await validatePackedPublicPackageManifest(root)) +
|
|
12
|
+
(await validatePackedPublicPackageTypes(root)));
|
|
13
|
+
}
|
|
14
|
+
export async function validatePackedPublicPackagePublint(root) {
|
|
9
15
|
let failures = 0;
|
|
10
16
|
for (const pkg of listPublicPackages(root)) {
|
|
11
|
-
failures += await
|
|
17
|
+
failures += await validatePackedPublicPackageTool(root, pkg, validatePublint);
|
|
12
18
|
}
|
|
13
19
|
return failures;
|
|
14
20
|
}
|
|
15
|
-
async function
|
|
21
|
+
export async function validatePackedPublicPackageManifest(root) {
|
|
16
22
|
let failures = 0;
|
|
23
|
+
for (const pkg of listPublicPackages(root)) {
|
|
24
|
+
failures += await validatePackedPublicPackageTool(root, pkg, validatePackedManifest);
|
|
25
|
+
}
|
|
26
|
+
return failures;
|
|
27
|
+
}
|
|
28
|
+
export async function validatePackedPublicPackageTypes(root) {
|
|
29
|
+
let failures = 0;
|
|
30
|
+
for (const pkg of listPublicPackages(root)) {
|
|
31
|
+
failures += await validatePackedPublicPackageTool(root, pkg, validateAttw);
|
|
32
|
+
}
|
|
33
|
+
return failures;
|
|
34
|
+
}
|
|
35
|
+
async function validatePackedPublicPackageTool(root, pkg, validate) {
|
|
17
36
|
const packed = await packPackage(root, pkg);
|
|
18
37
|
try {
|
|
19
|
-
|
|
20
|
-
for (const message of lint.messages) {
|
|
21
|
-
console.error(`${pkg.path}: publint ${message.type} ${message.code}: ${formatMessage(message, lint.pkg)}`);
|
|
22
|
-
failures++;
|
|
23
|
-
}
|
|
24
|
-
const attwArgs = [
|
|
25
|
-
packed.path,
|
|
26
|
-
'--format',
|
|
27
|
-
'ascii',
|
|
28
|
-
'--no-color',
|
|
29
|
-
'--profile',
|
|
30
|
-
'node16',
|
|
31
|
-
'--ignore-rules',
|
|
32
|
-
'cjs-resolves-to-esm',
|
|
33
|
-
...attwExcludedEntrypointArgs(pkg),
|
|
34
|
-
];
|
|
35
|
-
const attwStatus = await runStatus('attw', ['--quiet', ...attwArgs], root, true);
|
|
36
|
-
if (attwStatus !== 0) {
|
|
37
|
-
await runStatus('attw', attwArgs, root);
|
|
38
|
-
console.error(`${pkg.path}: are-the-types-wrong validation failed`);
|
|
39
|
-
failures++;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
console.log(`${pkg.path}: are-the-types-wrong valid.`);
|
|
43
|
-
}
|
|
38
|
+
return await validate(root, pkg, packed);
|
|
44
39
|
}
|
|
45
40
|
catch (error) {
|
|
46
41
|
const message = error instanceof Error ? error.message : String(error);
|
|
47
42
|
console.error(`${pkg.path}: packed package validation failed: ${message}`);
|
|
48
|
-
|
|
43
|
+
return 1;
|
|
49
44
|
}
|
|
50
45
|
finally {
|
|
51
46
|
unlinkSync(packed.path);
|
|
52
47
|
}
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
}
|
|
49
|
+
async function validatePublint(_root, pkg, packed) {
|
|
50
|
+
let failures = 0;
|
|
51
|
+
const lint = await publint({ pack: { tarball: packed.arrayBuffer }, level: 'warning', strict: true });
|
|
52
|
+
for (const message of lint.messages) {
|
|
53
|
+
console.error(`${pkg.path}: publint ${message.type} ${message.code}: ${formatMessage(message, lint.pkg)}`);
|
|
54
|
+
failures++;
|
|
55
55
|
}
|
|
56
56
|
return failures;
|
|
57
57
|
}
|
|
58
|
+
async function validatePackedManifest(root, pkg, packed) {
|
|
59
|
+
let failures = 0;
|
|
60
|
+
const packedPackage = await readPackedPackageJson(root, packed.path, pkg.name);
|
|
61
|
+
for (const message of validatePackedWorkspaceDependencies(root, pkg, packedPackage)) {
|
|
62
|
+
console.error(message);
|
|
63
|
+
failures++;
|
|
64
|
+
}
|
|
65
|
+
return failures;
|
|
66
|
+
}
|
|
67
|
+
async function validateAttw(root, pkg, packed) {
|
|
68
|
+
const attwArgs = [
|
|
69
|
+
packed.path,
|
|
70
|
+
'--format',
|
|
71
|
+
'ascii',
|
|
72
|
+
'--no-color',
|
|
73
|
+
'--profile',
|
|
74
|
+
'node16',
|
|
75
|
+
'--ignore-rules',
|
|
76
|
+
'cjs-resolves-to-esm',
|
|
77
|
+
...attwExcludedEntrypointArgs(pkg),
|
|
78
|
+
];
|
|
79
|
+
const attw = await runResult('attw', attwArgs, root);
|
|
80
|
+
if (attw.exitCode === 0) {
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
printAttwOutput(attw.stdout);
|
|
84
|
+
printAttwOutput(attw.stderr);
|
|
85
|
+
console.error(`${pkg.path}: are-the-types-wrong validation failed`);
|
|
86
|
+
return 1;
|
|
87
|
+
}
|
|
88
|
+
function printAttwOutput(output) {
|
|
89
|
+
for (const line of output.split('\n')) {
|
|
90
|
+
if (!line || line.includes('(ignored)')) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
console.error(line);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
58
96
|
function attwExcludedEntrypointArgs(pkg) {
|
|
59
97
|
const excluded = wasmExportEntrypoints(pkg.json.exports);
|
|
60
98
|
return excluded.length === 0 ? [] : ['--exclude-entrypoints', ...excluded];
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
export interface MonorepoContext {
|
|
2
2
|
root: string;
|
|
3
3
|
syncRuntime: boolean;
|
|
4
|
+
verbose?: boolean;
|
|
4
5
|
}
|
|
5
6
|
export interface ValidatePackOptions {
|
|
6
7
|
failFast?: boolean;
|
|
8
|
+
fix?: boolean;
|
|
9
|
+
verbose?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface MonorepoPack {
|
|
12
|
+
name: string;
|
|
13
|
+
init?(ctx: MonorepoContext): Promise<void> | void;
|
|
14
|
+
fixPreBuild?(ctx: MonorepoContext): Promise<void> | void;
|
|
15
|
+
fixPostBuild?(ctx: MonorepoContext): Promise<void> | void;
|
|
16
|
+
validatePreBuild?(ctx: MonorepoContext): Promise<number> | number;
|
|
17
|
+
validatePostBuild?(ctx: MonorepoContext): Promise<number> | number;
|
|
18
|
+
}
|
|
19
|
+
export interface ValidatePackRunHooks {
|
|
20
|
+
packs?: readonly MonorepoPack[];
|
|
21
|
+
runBuild?: (ctx: MonorepoContext, options?: ValidatePackOptions) => Promise<number> | number;
|
|
22
|
+
}
|
|
23
|
+
export interface ValidatePackResult {
|
|
24
|
+
failures: number;
|
|
25
|
+
failedChecks: number;
|
|
7
26
|
}
|
|
8
27
|
export declare function runInitPacks(ctx: MonorepoContext): Promise<void>;
|
|
9
|
-
export declare function runValidatePacks(ctx: MonorepoContext, options?: ValidatePackOptions): Promise<
|
|
28
|
+
export declare function runValidatePacks(ctx: MonorepoContext, options?: ValidatePackOptions, hooks?: ValidatePackRunHooks): Promise<ValidatePackResult>;
|
|
10
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/monorepo/packs/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/monorepo/packs/index.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,WAAW,CAAC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzD,YAAY,CAAC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1D,gBAAgB,CAAC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAClE,iBAAiB,CAAC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CACpE;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;CAC9F;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAgGD,wBAAsB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAItE;AAED,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE,mBAAwB,EACjC,KAAK,GAAE,oBAAyB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CA0B7B"}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { chmodSync, existsSync, statSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
+
import { runStatus } from '../../lib/run.js';
|
|
4
|
+
import { readProjectTargets } from '../../nx/index.js';
|
|
5
|
+
import { syncBunLockfileVersions, validateBunLockfileVersions } from '../lockfile.js';
|
|
3
6
|
import { validateManagedFiles } from '../managed-files.js';
|
|
4
|
-
import { validateNxSync } from '../nx-sync.js';
|
|
7
|
+
import { fixNxSync, validateNxSync } from '../nx-sync.js';
|
|
5
8
|
import { fixPackageHygiene, validatePackageHygiene } from '../package-hygiene.js';
|
|
6
|
-
import { applyPublicPackageDefaults, applyWorkspaceDependencyDefaults, validateNxReleaseConfig, validatePublicPackageMetadata, validatePublicTags, validateRootPackagePolicy, validateWorkspaceDependencies, } from '../package-policy.js';
|
|
7
|
-
import {
|
|
9
|
+
import { applyFixableMonorepoDefaults, applyNxReleaseDefaults, applyPublicPackageDefaults, applyWorkspaceDependencyDefaults, validateNxProjectNames, validateNxReleaseConfig, validatePublicPackageMetadata, validatePublicTags, validateRootPackagePolicy, validateWorkspaceDependencies, } from '../package-policy.js';
|
|
10
|
+
import { validatePackedPublicPackageManifest, validatePackedPublicPackagePublint, validatePackedPublicPackageTypes, } from '../packed-package.js';
|
|
8
11
|
import { syncRootRuntimeVersions } from '../runtime.js';
|
|
12
|
+
import { applyToolConfigDefaults, validateToolConfig } from '../tool-validation.js';
|
|
9
13
|
const packs = [
|
|
10
14
|
{
|
|
11
15
|
name: 'core',
|
|
12
16
|
async init(ctx) {
|
|
13
17
|
ensureLocalSmooShim(ctx.root);
|
|
18
|
+
applyNxReleaseDefaults(ctx.root);
|
|
14
19
|
if (ctx.syncRuntime) {
|
|
15
20
|
await syncRootRuntimeVersions(ctx.root);
|
|
16
21
|
}
|
|
@@ -18,11 +23,21 @@ const packs = [
|
|
|
18
23
|
console.log('skip root runtime versions (outside devenv; pass --sync-runtime to force)');
|
|
19
24
|
}
|
|
20
25
|
},
|
|
21
|
-
async
|
|
26
|
+
async fixPreBuild(ctx) {
|
|
27
|
+
applyFixableMonorepoDefaults(ctx.root);
|
|
28
|
+
await applyToolConfigDefaults(ctx.root);
|
|
29
|
+
syncBunLockfileVersions(ctx.root);
|
|
30
|
+
await fixNxSync(ctx.root, ctx.verbose === true);
|
|
31
|
+
applyWorkspaceDependencyDefaults(ctx.root, { resolvedTargetsByProject: await readResolvedTargetsByProject(ctx) });
|
|
32
|
+
},
|
|
33
|
+
async validatePreBuild(ctx) {
|
|
22
34
|
return (validateManagedFiles(ctx.root) +
|
|
23
35
|
validateRootPackagePolicy(ctx.root) +
|
|
36
|
+
validateToolConfig(ctx.root) +
|
|
37
|
+
validateNxProjectNames(ctx.root) +
|
|
24
38
|
validateNxReleaseConfig(ctx.root) +
|
|
25
|
-
(
|
|
39
|
+
validateBunLockfileVersions(ctx.root) +
|
|
40
|
+
(await validateNxSync(ctx.root, ctx.verbose === true)));
|
|
26
41
|
},
|
|
27
42
|
},
|
|
28
43
|
{
|
|
@@ -30,24 +45,55 @@ const packs = [
|
|
|
30
45
|
init(ctx) {
|
|
31
46
|
applyPublicPackageDefaults(ctx.root);
|
|
32
47
|
},
|
|
33
|
-
|
|
48
|
+
fixPreBuild(ctx) {
|
|
49
|
+
applyPublicPackageDefaults(ctx.root);
|
|
50
|
+
},
|
|
51
|
+
validatePreBuild(ctx) {
|
|
34
52
|
return validatePublicTags(ctx.root) + validatePublicPackageMetadata(ctx.root);
|
|
35
53
|
},
|
|
36
54
|
},
|
|
37
55
|
{
|
|
38
56
|
name: 'workspace-dependencies',
|
|
39
|
-
|
|
57
|
+
init(ctx) {
|
|
40
58
|
applyWorkspaceDependencyDefaults(ctx.root);
|
|
59
|
+
},
|
|
60
|
+
async fixPostBuild(ctx) {
|
|
61
|
+
applyWorkspaceDependencyDefaults(ctx.root, { resolvedTargetsByProject: await readResolvedTargetsByProject(ctx) });
|
|
62
|
+
},
|
|
63
|
+
async validatePostBuild(ctx) {
|
|
64
|
+
return validateWorkspaceDependencies(ctx.root, {
|
|
65
|
+
resolvedTargetsByProject: await readResolvedTargetsByProject(ctx),
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'package-hygiene',
|
|
71
|
+
async init(ctx) {
|
|
72
|
+
await fixPackageHygiene(ctx.root, ctx.verbose === true);
|
|
73
|
+
},
|
|
74
|
+
async fixPostBuild(ctx) {
|
|
41
75
|
await fixPackageHygiene(ctx.root);
|
|
42
76
|
},
|
|
43
|
-
async
|
|
44
|
-
return
|
|
77
|
+
async validatePostBuild(ctx) {
|
|
78
|
+
return validatePackageHygiene(ctx.root, ctx.verbose === true);
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'packed-package-publint',
|
|
83
|
+
validatePostBuild(ctx) {
|
|
84
|
+
return validatePackedPublicPackagePublint(ctx.root);
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: 'packed-package-manifest',
|
|
89
|
+
validatePostBuild(ctx) {
|
|
90
|
+
return validatePackedPublicPackageManifest(ctx.root);
|
|
45
91
|
},
|
|
46
92
|
},
|
|
47
93
|
{
|
|
48
|
-
name: 'packed-
|
|
49
|
-
|
|
50
|
-
return
|
|
94
|
+
name: 'packed-package-types',
|
|
95
|
+
validatePostBuild(ctx) {
|
|
96
|
+
return validatePackedPublicPackageTypes(ctx.root);
|
|
51
97
|
},
|
|
52
98
|
},
|
|
53
99
|
];
|
|
@@ -56,22 +102,198 @@ export async function runInitPacks(ctx) {
|
|
|
56
102
|
await pack.init?.(ctx);
|
|
57
103
|
}
|
|
58
104
|
}
|
|
59
|
-
export async function runValidatePacks(ctx, options = {}) {
|
|
105
|
+
export async function runValidatePacks(ctx, options = {}, hooks = {}) {
|
|
106
|
+
const selectedPacks = hooks.packs ?? packs;
|
|
107
|
+
const build = hooks.runBuild ?? runBuild;
|
|
108
|
+
if (options.fix) {
|
|
109
|
+
await runFixPhase(ctx, selectedPacks, 'pre-build', 'fixPreBuild');
|
|
110
|
+
const buildFailures = await build(ctx, options);
|
|
111
|
+
if (buildFailures > 0) {
|
|
112
|
+
return { failures: buildFailures, failedChecks: 1 };
|
|
113
|
+
}
|
|
114
|
+
await runFixPhase(ctx, selectedPacks, 'post-build', 'fixPostBuild');
|
|
115
|
+
return runValidationPhases(ctx, selectedPacks, options, false);
|
|
116
|
+
}
|
|
117
|
+
const preBuild = await runValidationPhase(ctx, selectedPacks, options, 'pre-build', 'validatePreBuild', false);
|
|
118
|
+
if (preBuild.failures > 0 && options.failFast) {
|
|
119
|
+
return preBuild;
|
|
120
|
+
}
|
|
121
|
+
const buildFailures = await build(ctx, options);
|
|
122
|
+
if (buildFailures > 0) {
|
|
123
|
+
return { failures: preBuild.failures + buildFailures, failedChecks: preBuild.failedChecks + 1 };
|
|
124
|
+
}
|
|
125
|
+
return sumResults(preBuild, await runValidationPhase(ctx, selectedPacks, options, 'post-build', 'validatePostBuild', true));
|
|
126
|
+
}
|
|
127
|
+
async function runValidationPhases(ctx, selectedPacks, options, printedBefore) {
|
|
128
|
+
const preBuild = await runValidationPhase(ctx, selectedPacks, options, 'pre-build', 'validatePreBuild', printedBefore);
|
|
129
|
+
if (preBuild.failures > 0 && options.failFast) {
|
|
130
|
+
return preBuild;
|
|
131
|
+
}
|
|
132
|
+
return sumResults(preBuild, await runValidationPhase(ctx, selectedPacks, options, 'post-build', 'validatePostBuild', true));
|
|
133
|
+
}
|
|
134
|
+
async function runValidationPhase(ctx, selectedPacks, options, phase, method, printedBefore) {
|
|
60
135
|
let failures = 0;
|
|
136
|
+
let failedChecks = 0;
|
|
61
137
|
let checkedPacks = 0;
|
|
62
|
-
|
|
63
|
-
|
|
138
|
+
let hasPrinted = printedBefore;
|
|
139
|
+
for (const pack of selectedPacks) {
|
|
140
|
+
const validate = pack[method];
|
|
141
|
+
if (!validate) {
|
|
64
142
|
continue;
|
|
65
143
|
}
|
|
66
|
-
|
|
144
|
+
const label = `${pack.name} (${phase})`;
|
|
145
|
+
if (options.verbose) {
|
|
146
|
+
printCheckHeading(label, hasPrinted || checkedPacks > 0);
|
|
147
|
+
}
|
|
148
|
+
hasPrinted = true;
|
|
67
149
|
checkedPacks++;
|
|
68
|
-
|
|
150
|
+
let packFailures;
|
|
151
|
+
let output = emptyCapturedOutput();
|
|
152
|
+
try {
|
|
153
|
+
if (options.verbose) {
|
|
154
|
+
packFailures = await validate(ctx);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
const captured = await captureConsoleOutput(() => validate(ctx));
|
|
158
|
+
packFailures = captured.result;
|
|
159
|
+
output = captured.output;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
if (!options.verbose) {
|
|
164
|
+
printCheckHeading(label, true);
|
|
165
|
+
if (error instanceof CapturedConsoleError) {
|
|
166
|
+
output = error.output;
|
|
167
|
+
}
|
|
168
|
+
printCapturedOutput(output);
|
|
169
|
+
}
|
|
170
|
+
throw error instanceof CapturedConsoleError ? error.cause : error;
|
|
171
|
+
}
|
|
69
172
|
failures += packFailures;
|
|
173
|
+
if (packFailures > 0) {
|
|
174
|
+
failedChecks++;
|
|
175
|
+
}
|
|
176
|
+
if (!options.verbose && packFailures > 0) {
|
|
177
|
+
printCheckHeading(label, true);
|
|
178
|
+
printCapturedOutput(output);
|
|
179
|
+
}
|
|
180
|
+
printCheckStatus(label, packFailures);
|
|
70
181
|
if (packFailures > 0 && options.failFast) {
|
|
71
182
|
break;
|
|
72
183
|
}
|
|
73
184
|
}
|
|
74
|
-
return failures;
|
|
185
|
+
return { failures, failedChecks };
|
|
186
|
+
}
|
|
187
|
+
function sumResults(left, right) {
|
|
188
|
+
return { failures: left.failures + right.failures, failedChecks: left.failedChecks + right.failedChecks };
|
|
189
|
+
}
|
|
190
|
+
async function runFixPhase(ctx, selectedPacks, phase, method) {
|
|
191
|
+
let checkedPacks = 0;
|
|
192
|
+
for (const pack of selectedPacks) {
|
|
193
|
+
const fix = pack[method];
|
|
194
|
+
if (!fix) {
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
const label = `${pack.name} (${phase} fix)`;
|
|
198
|
+
if (ctx.verbose) {
|
|
199
|
+
printCheckHeading(label, checkedPacks > 0);
|
|
200
|
+
}
|
|
201
|
+
checkedPacks++;
|
|
202
|
+
if (ctx.verbose) {
|
|
203
|
+
await fix(ctx);
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
let output = emptyCapturedOutput();
|
|
207
|
+
try {
|
|
208
|
+
output = (await captureConsoleOutput(() => fix(ctx))).output;
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
if (error instanceof CapturedConsoleError) {
|
|
212
|
+
output = error.output;
|
|
213
|
+
}
|
|
214
|
+
printCheckHeading(label, true);
|
|
215
|
+
printCapturedOutput(output);
|
|
216
|
+
throw error instanceof CapturedConsoleError ? error.cause : error;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async function runBuild(ctx, options = {}) {
|
|
221
|
+
if (options.verbose) {
|
|
222
|
+
printCheckHeading('build', true);
|
|
223
|
+
}
|
|
224
|
+
const status = await runStatus('nx', ['run-many', '-t', 'build'], ctx.root, options.verbose !== true);
|
|
225
|
+
if (status !== 0) {
|
|
226
|
+
if (!options.verbose) {
|
|
227
|
+
printCheckHeading('build', true);
|
|
228
|
+
}
|
|
229
|
+
console.error('nx run-many -t build failed');
|
|
230
|
+
printCheckStatus('build', 1);
|
|
231
|
+
return 1;
|
|
232
|
+
}
|
|
233
|
+
printCheckStatus('build', 0);
|
|
234
|
+
return 0;
|
|
235
|
+
}
|
|
236
|
+
function printCheckStatus(label, failures) {
|
|
237
|
+
if (failures === 0) {
|
|
238
|
+
console.log(`🆗 ${label}`);
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
const noun = failures === 1 ? 'problem' : 'problems';
|
|
242
|
+
console.log(`👎 ${label} (${failures} ${noun})\n`);
|
|
243
|
+
}
|
|
244
|
+
function printCheckHeading(label, separate) {
|
|
245
|
+
console.log(`${separate ? '\n' : ''}== ${label} ==`);
|
|
246
|
+
}
|
|
247
|
+
function emptyCapturedOutput() {
|
|
248
|
+
return { logs: [], errors: [] };
|
|
249
|
+
}
|
|
250
|
+
async function captureConsoleOutput(fn) {
|
|
251
|
+
const output = emptyCapturedOutput();
|
|
252
|
+
const originalLog = console.log;
|
|
253
|
+
const originalError = console.error;
|
|
254
|
+
console.log = (...args) => {
|
|
255
|
+
output.logs.push(args.join(' '));
|
|
256
|
+
};
|
|
257
|
+
console.error = (...args) => {
|
|
258
|
+
output.errors.push(args.join(' '));
|
|
259
|
+
};
|
|
260
|
+
try {
|
|
261
|
+
return { result: await fn(), output };
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
throw new CapturedConsoleError(error, output);
|
|
265
|
+
}
|
|
266
|
+
finally {
|
|
267
|
+
console.log = originalLog;
|
|
268
|
+
console.error = originalError;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
class CapturedConsoleError extends Error {
|
|
272
|
+
cause;
|
|
273
|
+
output;
|
|
274
|
+
constructor(cause, output) {
|
|
275
|
+
super(cause instanceof Error ? cause.message : String(cause));
|
|
276
|
+
this.cause = cause;
|
|
277
|
+
this.output = output;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function printCapturedOutput(output) {
|
|
281
|
+
for (const line of output.logs) {
|
|
282
|
+
console.log(line);
|
|
283
|
+
}
|
|
284
|
+
for (const line of output.errors) {
|
|
285
|
+
console.log(line);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
async function readResolvedTargetsByProject(ctx) {
|
|
289
|
+
const projects = await readProjectTargets(ctx.root);
|
|
290
|
+
return new Map(projects.map((project) => [
|
|
291
|
+
project.project,
|
|
292
|
+
{
|
|
293
|
+
targets: new Set(project.targets),
|
|
294
|
+
...(project.buildDependsOn ? { buildDependsOn: project.buildDependsOn } : {}),
|
|
295
|
+
},
|
|
296
|
+
]));
|
|
75
297
|
}
|
|
76
298
|
function ensureLocalSmooShim(root) {
|
|
77
299
|
const shim = join(root, 'tooling', 'smoo');
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export type PublishWorkflowBump = 'auto' | 'patch' | 'minor' | 'major' | 'prerelease';
|
|
2
|
+
export type PublishWorkflowCondition = 'version-mode-not-none' | 'failure' | 'always';
|
|
3
|
+
export type PublishWorkflowNxTarget = 'build' | 'lint' | 'test';
|
|
4
|
+
export declare enum PublishWorkflowStepKind {
|
|
5
|
+
Checkout = "checkout",
|
|
6
|
+
SetupDevenv = "setup-devenv",
|
|
7
|
+
ConfigureReleaseAuthor = "configure-release-author",
|
|
8
|
+
BuildSelfHostedCli = "build-self-hosted-cli",
|
|
9
|
+
RepairPendingReleases = "repair-pending-releases",
|
|
10
|
+
VersionRelease = "version-release",
|
|
11
|
+
CheckManagedMonorepoFiles = "check-managed-monorepo-files",
|
|
12
|
+
Build = "build",
|
|
13
|
+
Lint = "lint",
|
|
14
|
+
UnitTests = "unit-tests",
|
|
15
|
+
UploadTraceDbs = "upload-trace-dbs",
|
|
16
|
+
ValidateMonorepoConfig = "validate-monorepo-config",
|
|
17
|
+
PublishRelease = "publish-release",
|
|
18
|
+
SaveNixDevenv = "save-nix-devenv"
|
|
19
|
+
}
|
|
20
|
+
export interface PublishWorkflowStep {
|
|
21
|
+
kind: PublishWorkflowStepKind;
|
|
22
|
+
name: string;
|
|
23
|
+
number: number;
|
|
24
|
+
id?: string;
|
|
25
|
+
condition?: PublishWorkflowCondition;
|
|
26
|
+
nxTarget?: PublishWorkflowNxTarget;
|
|
27
|
+
}
|
|
28
|
+
export interface PublishWorkflowDefinition {
|
|
29
|
+
steps: PublishWorkflowStep[];
|
|
30
|
+
}
|
|
31
|
+
export interface PublishWorkflowDefinitionOptions {
|
|
32
|
+
repoName?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface PublishWorkflowInputs {
|
|
35
|
+
bump: PublishWorkflowBump;
|
|
36
|
+
dryRun: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface PublishWorkflowVersionOutputs {
|
|
39
|
+
mode: 'new' | 'none';
|
|
40
|
+
projects: string[];
|
|
41
|
+
}
|
|
42
|
+
export interface PublishWorkflowSetupOutputs {
|
|
43
|
+
nixCacheHit: string;
|
|
44
|
+
devenvCacheHit: string;
|
|
45
|
+
}
|
|
46
|
+
export interface PublishWorkflowCallbacks {
|
|
47
|
+
checkout(): Promise<void>;
|
|
48
|
+
setupDevenv(): Promise<PublishWorkflowSetupOutputs>;
|
|
49
|
+
configureReleaseAuthor(): Promise<void>;
|
|
50
|
+
buildSelfHostedCli(): Promise<void>;
|
|
51
|
+
repairPendingReleases(input: {
|
|
52
|
+
dryRun: boolean;
|
|
53
|
+
}): Promise<void>;
|
|
54
|
+
versionRelease(input: {
|
|
55
|
+
bump: PublishWorkflowBump;
|
|
56
|
+
dryRun: boolean;
|
|
57
|
+
}): Promise<PublishWorkflowVersionOutputs>;
|
|
58
|
+
checkManagedMonorepoFiles(): Promise<void>;
|
|
59
|
+
nxRunMany(input: {
|
|
60
|
+
target: PublishWorkflowNxTarget;
|
|
61
|
+
projects: string[];
|
|
62
|
+
}): Promise<void>;
|
|
63
|
+
uploadTraceDbs(): Promise<void>;
|
|
64
|
+
validateMonorepoConfig(): Promise<void>;
|
|
65
|
+
publishRelease(input: {
|
|
66
|
+
bump: PublishWorkflowBump;
|
|
67
|
+
dryRun: boolean;
|
|
68
|
+
}): Promise<void>;
|
|
69
|
+
saveNixDevenv(input: PublishWorkflowSetupOutputs): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
export interface PublishWorkflowRunContext {
|
|
72
|
+
inputs: PublishWorkflowInputs;
|
|
73
|
+
callbacks: PublishWorkflowCallbacks;
|
|
74
|
+
}
|
|
75
|
+
export interface PublishWorkflowRunResult {
|
|
76
|
+
version: PublishWorkflowVersionOutputs;
|
|
77
|
+
failed: boolean;
|
|
78
|
+
}
|
|
79
|
+
export declare function definePublishWorkflow(options?: PublishWorkflowDefinitionOptions): PublishWorkflowDefinition;
|
|
80
|
+
export declare function runPublishWorkflow(workflow: PublishWorkflowDefinition, context: PublishWorkflowRunContext): Promise<PublishWorkflowRunResult>;
|
|
81
|
+
export declare function renderPublishWorkflowYaml(options?: PublishWorkflowDefinitionOptions): string;
|
|
82
|
+
//# sourceMappingURL=publish-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-workflow.d.ts","sourceRoot":"","sources":["../../src/monorepo/publish-workflow.ts"],"names":[],"mappings":"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"}
|