release-monorepo-semantically 1.5.0 → 1.5.1
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/CliOptions.d.ts +2 -2
- package/dist/CliOptions.d.ts.map +1 -1
- package/dist/MonorepoController.d.ts +9 -27
- package/dist/MonorepoController.d.ts.map +1 -1
- package/dist/MonorepoController.js +44 -156
- package/dist/MonorepoController.js.map +1 -1
- package/dist/MonorepoController.spec.js +50 -203
- package/dist/MonorepoController.spec.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -17
- package/dist/index.js.map +1 -1
- package/dist/main.spec.js +5 -6
- package/dist/main.spec.js.map +1 -1
- package/dist/models/NpmPackage.d.ts +11 -3
- package/dist/models/NpmPackage.d.ts.map +1 -1
- package/dist/models/NpmPackage.js +50 -5
- package/dist/models/NpmPackage.js.map +1 -1
- package/dist/models/ReleaseTypes.d.ts +0 -12
- package/dist/models/ReleaseTypes.d.ts.map +1 -1
- package/dist/models/SemVerBumpType.d.ts +1 -0
- package/dist/models/SemVerBumpType.d.ts.map +1 -1
- package/dist/models/SemVerBumpType.js +4 -0
- package/dist/models/SemVerBumpType.js.map +1 -1
- package/dist/plugins/ChangelogPlugin.d.ts +13 -0
- package/dist/plugins/ChangelogPlugin.d.ts.map +1 -0
- package/dist/plugins/ChangelogPlugin.js +33 -0
- package/dist/plugins/ChangelogPlugin.js.map +1 -0
- package/dist/plugins/GitPlugin.d.ts +15 -0
- package/dist/plugins/GitPlugin.d.ts.map +1 -0
- package/dist/plugins/GitPlugin.js +41 -0
- package/dist/plugins/GitPlugin.js.map +1 -0
- package/dist/plugins/NpmPlugin.d.ts +11 -0
- package/dist/plugins/NpmPlugin.d.ts.map +1 -0
- package/dist/plugins/NpmPlugin.js +27 -0
- package/dist/plugins/NpmPlugin.js.map +1 -0
- package/dist/plugins/PackageJsonPlugin.d.ts +10 -0
- package/dist/plugins/PackageJsonPlugin.d.ts.map +1 -0
- package/dist/plugins/PackageJsonPlugin.js +25 -0
- package/dist/plugins/PackageJsonPlugin.js.map +1 -0
- package/dist/plugins/ReleasePlugin.d.ts +24 -0
- package/dist/plugins/ReleasePlugin.d.ts.map +1 -0
- package/dist/plugins/ReleasePlugin.js +3 -0
- package/dist/plugins/ReleasePlugin.js.map +1 -0
- package/dist/plugins/ReleasePlugin.spec.d.ts +2 -0
- package/dist/plugins/ReleasePlugin.spec.d.ts.map +1 -0
- package/dist/plugins/ReleasePlugin.spec.js +108 -0
- package/dist/plugins/ReleasePlugin.spec.js.map +1 -0
- package/dist/services/ChangelogView.d.ts +11 -20
- package/dist/services/ChangelogView.d.ts.map +1 -1
- package/dist/services/ChangelogView.js +21 -32
- package/dist/services/ChangelogView.js.map +1 -1
- package/dist/services/HandlebarsRenderService.d.ts +1 -0
- package/dist/services/HandlebarsRenderService.d.ts.map +1 -1
- package/dist/services/HandlebarsRenderService.js +39 -0
- package/dist/services/HandlebarsRenderService.js.map +1 -1
- package/dist/services/NodeFileSystemService.d.ts +6 -2
- package/dist/services/NodeFileSystemService.d.ts.map +1 -1
- package/dist/services/NodeFileSystemService.js +27 -4
- package/dist/services/NodeFileSystemService.js.map +1 -1
- package/dist/services/PackageManager.d.ts +2 -4
- package/dist/services/PackageManager.d.ts.map +1 -1
- package/dist/services/PackageManager.js +5 -14
- package/dist/services/PackageManager.js.map +1 -1
- package/dist/services/PackageManager.spec.js +6 -27
- package/dist/services/PackageManager.spec.js.map +1 -1
- package/dist/services/ReleaseCommitView.d.ts +10 -3
- package/dist/services/ReleaseCommitView.d.ts.map +1 -1
- package/dist/services/ReleaseCommitView.js +5 -4
- package/dist/services/ReleaseCommitView.js.map +1 -1
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -0
- package/package.json +1 -1
- package/templates/changelog.hbs +11 -11
- package/templates/release-commit-msg.hbs +7 -7
package/dist/CliOptions.d.ts
CHANGED
package/dist/CliOptions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliOptions.d.ts","sourceRoot":"","sources":["../src/CliOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"CliOptions.d.ts","sourceRoot":"","sources":["../src/CliOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,UAAW,SAAQ,iBAAiB;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -1,37 +1,19 @@
|
|
|
1
|
-
import { ReleaseCommitView } from './services/ReleaseCommitView';
|
|
2
|
-
import { ChangelogView } from './services/ChangelogView';
|
|
3
|
-
import { PackageManager } from './services/PackageManager';
|
|
4
1
|
import { NodeFileSystemService } from './services/NodeFileSystemService';
|
|
5
2
|
import { GitService } from './services/GitService';
|
|
6
3
|
import { ConsoleLogger } from './services/ConsoleLogger';
|
|
7
4
|
import { CliOptions } from './CliOptions';
|
|
8
|
-
|
|
5
|
+
import { ReleasePlugin } from './plugins/ReleasePlugin';
|
|
6
|
+
type ReleaseOptions = Partial<Pick<CliOptions, 'dryRun' | 'noPush' | 'noPublish'>>;
|
|
9
7
|
export declare class MonorepoController {
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private releaseCommitView;
|
|
14
|
-
private packageManager;
|
|
8
|
+
private readonly plugins;
|
|
9
|
+
private fs;
|
|
10
|
+
private vsc;
|
|
15
11
|
private logger;
|
|
16
|
-
private
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
discoverRootPackageJSON(): void;
|
|
20
|
-
discoverPackages(): void;
|
|
21
|
-
private resolveWorkspacePackageJsonPath;
|
|
22
|
-
private getInternalPackageNames;
|
|
23
|
-
private getPackageDir;
|
|
24
|
-
private getDependencyUpdates;
|
|
25
|
-
private applyDependencyUpdates;
|
|
26
|
-
private isNonEmptyChangeSet;
|
|
27
|
-
private parseVersionBump;
|
|
28
|
-
private collectReleaseCommits;
|
|
29
|
-
private logStep;
|
|
30
|
-
private renderChangelog;
|
|
31
|
-
private createTags;
|
|
32
|
-
private toReleaseCommitPackage;
|
|
33
|
-
private publishPackages;
|
|
12
|
+
private packageSortedList;
|
|
13
|
+
constructor(plugins: ReleasePlugin[], fs: NodeFileSystemService, vsc: GitService, logger: ConsoleLogger);
|
|
14
|
+
discoverPackages(monorepoPath: string): void;
|
|
34
15
|
release(options?: ReleaseOptions): void;
|
|
16
|
+
private logStep;
|
|
35
17
|
}
|
|
36
18
|
export {};
|
|
37
19
|
//# sourceMappingURL=MonorepoController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonorepoController.d.ts","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MonorepoController.d.ts","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,KAAK,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;AAEnF,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,iBAAiB,CAAoB;gBAG1B,OAAO,EAAE,aAAa,EAAE,EACjC,EAAE,EAAE,qBAAqB,EACzB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,aAAa;IAG/B,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ5C,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;IAgD3C,OAAO,CAAC,OAAO;CAGhB"}
|
|
@@ -1,180 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.MonorepoController = void 0;
|
|
7
4
|
const NpmPackage_1 = require("./models/NpmPackage");
|
|
8
5
|
const SemVerBumpType_1 = require("./models/SemVerBumpType");
|
|
9
6
|
const sortLessDependenciesFirst_1 = require("./sortLessDependenciesFirst");
|
|
10
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
11
7
|
class MonorepoController {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
releaseCommitView;
|
|
16
|
-
packageManager;
|
|
8
|
+
plugins;
|
|
9
|
+
fs;
|
|
10
|
+
vsc;
|
|
17
11
|
logger;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.changelog = changelog;
|
|
24
|
-
this.releaseCommitView = releaseCommitView;
|
|
25
|
-
this.packageManager = packageManager;
|
|
12
|
+
packageSortedList = [];
|
|
13
|
+
constructor(plugins, fs, vsc, logger) {
|
|
14
|
+
this.plugins = plugins;
|
|
15
|
+
this.fs = fs;
|
|
16
|
+
this.vsc = vsc;
|
|
26
17
|
this.logger = logger;
|
|
27
18
|
}
|
|
28
|
-
|
|
29
|
-
|
|
19
|
+
discoverPackages(monorepoPath) {
|
|
20
|
+
const { workspaces = [] } = this.fs.readPackageJsonOrFail(monorepoPath);
|
|
21
|
+
const packageJsonList = this.fs.findManyPackageJsonByGlob(workspaces, monorepoPath);
|
|
22
|
+
this.packageSortedList = (0, sortLessDependenciesFirst_1.sortLessDependenciesFirst)(packageJsonList.map(([pkgPath, pkg]) => NpmPackage_1.NpmPackage.createFromPackage(pkg, pkgPath)).filter((p) => !p.isPrivate));
|
|
30
23
|
}
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return this.fileSystemService.fileExists(packageJsonPath) ? packageJsonPath : undefined;
|
|
42
|
-
}
|
|
43
|
-
getInternalPackageNames() {
|
|
44
|
-
return new Set(this.packages.map((pkg) => pkg.name));
|
|
45
|
-
}
|
|
46
|
-
getPackageDir(pkg) {
|
|
47
|
-
return node_path_1.default.dirname(pkg.path);
|
|
48
|
-
}
|
|
49
|
-
getDependencyUpdates(packageName, releasedVersions) {
|
|
50
|
-
const packageJson = this.fileSystemService.readJson(node_path_1.default.resolve(this.getPackageDir(packageName), 'package.json'));
|
|
51
|
-
const packageDependencies = packageName.filterDependencies(this.getInternalPackageNames());
|
|
52
|
-
const changes = [];
|
|
53
|
-
for (const depName of packageDependencies) {
|
|
54
|
-
const depVersion = releasedVersions.get(depName);
|
|
55
|
-
if (!depVersion) {
|
|
24
|
+
release(options = {}) {
|
|
25
|
+
const { dryRun = false, noPush = false, noPublish = false } = options;
|
|
26
|
+
const releasedVersions = new Map();
|
|
27
|
+
const releasedCommits = new Map();
|
|
28
|
+
for (const pkg of this.packageSortedList) {
|
|
29
|
+
const pkgReleaseCommits = this.vsc.findManyCommitsSinceTag(pkg.getCommitTag()).filter((c) => c.matchesScope(pkg.name) && c.isReleaseTrigger());
|
|
30
|
+
const dependencyUpdates = pkg.getDependencyUpdates(releasedVersions);
|
|
31
|
+
const versionBump = (0, SemVerBumpType_1.aggregateBumpTypes)(...pkgReleaseCommits.map((c) => c.bumpType), dependencyUpdates.length ? SemVerBumpType_1.SemVerBumpType.MINOR : SemVerBumpType_1.SemVerBumpType.NONE);
|
|
32
|
+
if (versionBump === SemVerBumpType_1.SemVerBumpType.NONE) {
|
|
33
|
+
this.logStep('SKIP', `${pkg.name}@${pkg.version}`);
|
|
56
34
|
continue;
|
|
57
35
|
}
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
36
|
+
const newVersion = pkg.getNewVersion(versionBump);
|
|
37
|
+
releasedVersions.set(pkg.name, newVersion);
|
|
38
|
+
releasedCommits.set(pkg.name, pkgReleaseCommits);
|
|
39
|
+
this.logStep('BUMP', `${pkg.name} ${pkg.version} -> ${newVersion} (${(0, SemVerBumpType_1.bumpTypeToString)(versionBump)})`);
|
|
40
|
+
for (const plugin of this.plugins) {
|
|
41
|
+
plugin.onPackageReleased?.({
|
|
42
|
+
dryRun,
|
|
43
|
+
noPush,
|
|
44
|
+
noPublish,
|
|
45
|
+
pkg: pkg,
|
|
46
|
+
releasedVersions,
|
|
47
|
+
releasedCommits: pkgReleaseCommits,
|
|
48
|
+
releasedPackages: this.packageSortedList.filter((pkg) => releasedVersions.has(pkg.name)),
|
|
64
49
|
});
|
|
65
50
|
}
|
|
66
51
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
52
|
+
for (const plugin of this.plugins) {
|
|
53
|
+
plugin.onReleaseComplete?.({
|
|
54
|
+
dryRun,
|
|
55
|
+
noPush,
|
|
56
|
+
noPublish,
|
|
57
|
+
releasedVersions,
|
|
58
|
+
releasedPackages: this.packageSortedList.filter((pkg) => releasedVersions.has(pkg.name)),
|
|
59
|
+
releasedCommits,
|
|
60
|
+
});
|
|
72
61
|
}
|
|
73
|
-
const packageJson = this.fileSystemService.readJson(node_path_1.default.resolve(this.getPackageDir(packageName), 'package.json'));
|
|
74
|
-
packageJson.dependencies ??= {};
|
|
75
|
-
for (const change of changes) {
|
|
76
|
-
packageJson.dependencies[change.packageName] = change.newVersion;
|
|
77
|
-
}
|
|
78
|
-
this.fileSystemService.writeJson(node_path_1.default.resolve(this.getPackageDir(packageName), 'package.json'), packageJson);
|
|
79
|
-
}
|
|
80
|
-
isNonEmptyChangeSet(changes) {
|
|
81
|
-
return changes.some((change) => change.oldVersion !== change.newVersion);
|
|
82
|
-
}
|
|
83
|
-
parseVersionBump(commits, versionBumpFromDependency) {
|
|
84
|
-
return Math.max(SemVerBumpType_1.SemVerBumpType.NONE, ...commits.map((commit) => (commit.isBreaking ? SemVerBumpType_1.SemVerBumpType.MAJOR : commit.bumpType)), versionBumpFromDependency);
|
|
85
|
-
}
|
|
86
|
-
collectReleaseCommits(commits) {
|
|
87
|
-
return commits.filter((commit) => commit.isReleaseTrigger());
|
|
88
62
|
}
|
|
89
63
|
logStep(step, detail) {
|
|
90
64
|
this.logger.info(`${step.padEnd(8)} ${detail}`);
|
|
91
65
|
}
|
|
92
|
-
renderChangelog(pkg, currentVersion, packageVersion, dependencyUpdates, releaseCommits) {
|
|
93
|
-
for (const commit of releaseCommits) {
|
|
94
|
-
this.changelog.addLog(commit);
|
|
95
|
-
}
|
|
96
|
-
this.changelog.render({
|
|
97
|
-
packageName: pkg.name,
|
|
98
|
-
packageVersion,
|
|
99
|
-
previousVersion: currentVersion,
|
|
100
|
-
packagePath: this.getPackageDir(pkg),
|
|
101
|
-
dependencyUpdates,
|
|
102
|
-
});
|
|
103
|
-
this.logStep('WRITE', `${pkg.name} CHANGELOG.md`);
|
|
104
|
-
}
|
|
105
|
-
createTags(releasedPackages) {
|
|
106
|
-
for (const releasedPackage of releasedPackages) {
|
|
107
|
-
this.vcsService.createTag(`${releasedPackage.pkg.name}@${releasedPackage.version}`);
|
|
108
|
-
this.logStep('TAG', `${releasedPackage.pkg.name}@${releasedPackage.version}`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
toReleaseCommitPackage(pkg, previousVersion, version, commits, dependencyUpdates) {
|
|
112
|
-
return {
|
|
113
|
-
name: pkg.name,
|
|
114
|
-
version,
|
|
115
|
-
previousVersion,
|
|
116
|
-
commits: commits.map((commit) => ({
|
|
117
|
-
type: commit.type,
|
|
118
|
-
subject: commit.subject,
|
|
119
|
-
isBreaking: commit.isBreaking,
|
|
120
|
-
})),
|
|
121
|
-
dependencyUpdates: dependencyUpdates.map((dependencyUpdate) => ({
|
|
122
|
-
packageName: dependencyUpdate.packageName,
|
|
123
|
-
oldVersion: dependencyUpdate.oldVersion,
|
|
124
|
-
newVersion: dependencyUpdate.newVersion,
|
|
125
|
-
})),
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
publishPackages(releasedPackages) {
|
|
129
|
-
for (const releasedPackage of releasedPackages) {
|
|
130
|
-
this.packageManager.publish(releasedPackage.pkg);
|
|
131
|
-
this.logStep('PUBLISH', `${releasedPackage.pkg.name}@${releasedPackage.version}`);
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
release(options = {}) {
|
|
135
|
-
const { dryRun = false, push = true, publish = true } = options;
|
|
136
|
-
const sorted = (0, sortLessDependenciesFirst_1.sortLessDependenciesFirst)(this.packages.filter((p) => !p.isPrivate));
|
|
137
|
-
const releasedVersions = new Map(this.packages.map((pkg) => [pkg.name, pkg.version]));
|
|
138
|
-
const releasedPackages = [];
|
|
139
|
-
const releaseCommitPackages = [];
|
|
140
|
-
for (const pkg of sorted) {
|
|
141
|
-
const currentVersion = releasedVersions.get(pkg.name) ?? pkg.version;
|
|
142
|
-
const commits = this.vcsService.findManyCommitsSinceTag(`${pkg.name}@${currentVersion}`);
|
|
143
|
-
const scopedCommits = commits.filter((commit) => commit.matchesScope(pkg.name));
|
|
144
|
-
const dependencyUpdates = this.getDependencyUpdates(pkg, releasedVersions);
|
|
145
|
-
const versionBumpFromDependencies = this.isNonEmptyChangeSet(dependencyUpdates) ? SemVerBumpType_1.SemVerBumpType.MINOR : SemVerBumpType_1.SemVerBumpType.NONE;
|
|
146
|
-
const versionBump = this.parseVersionBump(scopedCommits, versionBumpFromDependencies);
|
|
147
|
-
if (versionBump === SemVerBumpType_1.SemVerBumpType.NONE) {
|
|
148
|
-
this.logStep('SKIP', `${pkg.name}@${currentVersion}`);
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
const newVersion = (0, SemVerBumpType_1.bumpVersion)(currentVersion, versionBump);
|
|
152
|
-
const releaseCommits = this.collectReleaseCommits(scopedCommits);
|
|
153
|
-
this.applyDependencyUpdates(pkg, dependencyUpdates);
|
|
154
|
-
this.packageManager.bumpVersion(pkg, versionBump);
|
|
155
|
-
releasedVersions.set(pkg.name, newVersion);
|
|
156
|
-
releasedPackages.push({ pkg, version: newVersion });
|
|
157
|
-
releaseCommitPackages.push(this.toReleaseCommitPackage(pkg, currentVersion, newVersion, releaseCommits, dependencyUpdates));
|
|
158
|
-
this.logStep('BUMP', `${pkg.name} ${currentVersion} -> ${newVersion} (${(0, SemVerBumpType_1.bumpTypeToString)(versionBump)})`);
|
|
159
|
-
this.renderChangelog(pkg, currentVersion, newVersion, dependencyUpdates, releaseCommits);
|
|
160
|
-
}
|
|
161
|
-
if (dryRun) {
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
// create release commit
|
|
165
|
-
const commitMessage = this.releaseCommitView.render({ packages: releaseCommitPackages });
|
|
166
|
-
this.vcsService.commit(commitMessage);
|
|
167
|
-
this.logStep('COMMIT', commitMessage.split('\n', 1)[0]);
|
|
168
|
-
// create git tags for every released package
|
|
169
|
-
this.createTags(releasedPackages);
|
|
170
|
-
if (push) {
|
|
171
|
-
this.vcsService.push(releasedPackages.length > 0);
|
|
172
|
-
this.logStep('PUSH', `HEAD${releasedPackages.length > 0 ? ` and ${releasedPackages.length} tag(s)` : ''}`);
|
|
173
|
-
}
|
|
174
|
-
if (publish) {
|
|
175
|
-
this.publishPackages(releasedPackages);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
66
|
}
|
|
179
67
|
exports.MonorepoController = MonorepoController;
|
|
180
68
|
//# sourceMappingURL=MonorepoController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonorepoController.js","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MonorepoController.js","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AACjD,4DAA+F;AAC/F,2EAAwE;AAUxE,MAAa,kBAAkB;IAIV;IACT;IACA;IACA;IANF,iBAAiB,GAAiB,EAAE,CAAC;IAE7C,YACmB,OAAwB,EACjC,EAAyB,EACzB,GAAe,EACf,MAAqB;QAHZ,YAAO,GAAP,OAAO,CAAiB;QACjC,OAAE,GAAF,EAAE,CAAuB;QACzB,QAAG,GAAH,GAAG,CAAY;QACf,WAAM,GAAN,MAAM,CAAe;IAC5B,CAAC;IAEJ,gBAAgB,CAAC,YAAoB;QACnC,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,yBAAyB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACpF,IAAI,CAAC,iBAAiB,GAAG,IAAA,qDAAyB,EAChD,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,uBAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAChH,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,UAA0B,EAAE;QAClC,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;QACtE,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACnD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEhE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC/I,MAAM,iBAAiB,GAAG,GAAG,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;YACrE,MAAM,WAAW,GAAG,IAAA,mCAAkB,EACpC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAC3C,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,+BAAc,CAAC,KAAK,CAAC,CAAC,CAAC,+BAAc,CAAC,IAAI,CACtE,CAAC;YAEF,IAAI,WAAW,KAAK,+BAAc,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnD,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAClD,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC3C,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,OAAO,UAAU,KAAK,IAAA,iCAAgB,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAEvG,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBACzB,MAAM;oBACN,MAAM;oBACN,SAAS;oBACT,GAAG,EAAE,GAAG;oBACR,gBAAgB;oBAChB,eAAe,EAAE,iBAAiB;oBAClC,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACzF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBACzB,MAAM;gBACN,MAAM;gBACN,SAAS;gBACT,gBAAgB;gBAChB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxF,eAAe;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,IAAqB,EAAE,MAAc;QACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AArED,gDAqEC"}
|
|
@@ -5,230 +5,77 @@ const MonorepoController_1 = require("./MonorepoController");
|
|
|
5
5
|
const NpmPackage_1 = require("./models/NpmPackage");
|
|
6
6
|
const ConventionalCommit_1 = require("./models/ConventionalCommit");
|
|
7
7
|
(0, vitest_1.describe)('MonorepoController.discoverPackages', () => {
|
|
8
|
-
(0, vitest_1.it)('given
|
|
9
|
-
const
|
|
10
|
-
[
|
|
11
|
-
|
|
12
|
-
{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
version: '1.0.0',
|
|
22
|
-
},
|
|
23
|
-
],
|
|
24
|
-
]);
|
|
25
|
-
const fileSystemService = {
|
|
26
|
-
findManyByGlob: vitest_1.vi.fn().mockReturnValue(['/repo/packages/a', '/repo/packages/b/package.json']),
|
|
27
|
-
readJson: vitest_1.vi.fn((filePath) => packageJsonByPath.get(filePath)),
|
|
28
|
-
fileExists: vitest_1.vi.fn((filePath) => packageJsonByPath.has(filePath)),
|
|
29
|
-
};
|
|
30
|
-
const controller = new MonorepoController_1.MonorepoController(fileSystemService, {}, {}, {}, {}, {});
|
|
31
|
-
controller.rootPackageJson = {
|
|
32
|
-
name: 'root',
|
|
33
|
-
version: '1.0.0',
|
|
34
|
-
workspaces: ['packages/*'],
|
|
35
|
-
};
|
|
36
|
-
controller.discoverPackages();
|
|
37
|
-
(0, vitest_1.expect)(fileSystemService.readJson).toHaveBeenCalledWith('/repo/packages/a/package.json');
|
|
38
|
-
(0, vitest_1.expect)(fileSystemService.readJson).toHaveBeenCalledWith('/repo/packages/b/package.json');
|
|
39
|
-
(0, vitest_1.expect)(controller.packages.map((pkg) => pkg.name)).toEqual(['pkg-a', 'pkg-b']);
|
|
8
|
+
(0, vitest_1.it)('given workspace package json files when packages are discovered then private packages are excluded', () => {
|
|
9
|
+
const fs = {
|
|
10
|
+
readPackageJsonOrFail: vitest_1.vi.fn().mockReturnValue({ workspaces: ['packages/*'] }),
|
|
11
|
+
findManyPackageJsonByGlob: vitest_1.vi.fn().mockReturnValue([
|
|
12
|
+
['/repo/packages/a/package.json', { name: 'pkg-a', version: '1.0.0' }],
|
|
13
|
+
['/repo/packages/private/package.json', { name: 'pkg-private', version: '1.0.0', private: true }],
|
|
14
|
+
]),
|
|
15
|
+
};
|
|
16
|
+
const controller = new MonorepoController_1.MonorepoController([], fs, {}, {});
|
|
17
|
+
controller.discoverPackages('/repo');
|
|
18
|
+
(0, vitest_1.expect)(fs.readPackageJsonOrFail).toHaveBeenCalledWith('/repo');
|
|
19
|
+
(0, vitest_1.expect)(fs.findManyPackageJsonByGlob).toHaveBeenCalledWith(['packages/*'], '/repo');
|
|
20
|
+
(0, vitest_1.expect)(controller.packageSortedList.map((pkg) => pkg.name)).toEqual(['pkg-a']);
|
|
40
21
|
});
|
|
41
22
|
});
|
|
42
23
|
(0, vitest_1.describe)('MonorepoController.release', () => {
|
|
43
|
-
(0, vitest_1.it)('given
|
|
44
|
-
const
|
|
45
|
-
|
|
24
|
+
(0, vitest_1.it)('given no release-triggering commits when release runs then it logs skip and calls only finalize hook', () => {
|
|
25
|
+
const plugin = {
|
|
26
|
+
onPackageReleased: vitest_1.vi.fn(),
|
|
27
|
+
onReleaseComplete: vitest_1.vi.fn(),
|
|
46
28
|
};
|
|
47
|
-
const
|
|
29
|
+
const vsc = {
|
|
48
30
|
findManyCommitsSinceTag: vitest_1.vi.fn().mockReturnValue([]),
|
|
49
|
-
createTag: vitest_1.vi.fn(),
|
|
50
|
-
commit: vitest_1.vi.fn(),
|
|
51
|
-
push: vitest_1.vi.fn(),
|
|
52
|
-
};
|
|
53
|
-
const changelog = {
|
|
54
|
-
addLog: vitest_1.vi.fn(),
|
|
55
|
-
render: vitest_1.vi.fn(),
|
|
56
|
-
};
|
|
57
|
-
const releaseCommitView = {
|
|
58
|
-
render: vitest_1.vi.fn().mockReturnValue('release commit message'),
|
|
59
|
-
};
|
|
60
|
-
const packageManager = {
|
|
61
|
-
bumpVersion: vitest_1.vi.fn(),
|
|
62
|
-
publish: vitest_1.vi.fn(),
|
|
63
31
|
};
|
|
64
32
|
const logger = {
|
|
65
33
|
info: vitest_1.vi.fn(),
|
|
66
34
|
};
|
|
67
|
-
const controller = new MonorepoController_1.MonorepoController(
|
|
68
|
-
controller.
|
|
69
|
-
NpmPackage_1.NpmPackage.createFromPackage({
|
|
70
|
-
name: 'pkg-a',
|
|
71
|
-
version: '1.0.0',
|
|
72
|
-
}, '/repo/packages/pkg-a/package.json'),
|
|
35
|
+
const controller = new MonorepoController_1.MonorepoController([plugin], {}, vsc, logger);
|
|
36
|
+
controller.packageSortedList = [
|
|
37
|
+
NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a/package.json'),
|
|
73
38
|
];
|
|
74
39
|
controller.release();
|
|
75
|
-
(0, vitest_1.expect)(
|
|
40
|
+
(0, vitest_1.expect)(plugin.onPackageReleased).not.toHaveBeenCalled();
|
|
41
|
+
(0, vitest_1.expect)(plugin.onReleaseComplete).toHaveBeenCalledWith({
|
|
42
|
+
dryRun: false,
|
|
43
|
+
noPush: false,
|
|
44
|
+
noPublish: false,
|
|
45
|
+
releasedVersions: new Map(),
|
|
46
|
+
releasedPackages: [],
|
|
47
|
+
releasedCommits: new Map(),
|
|
48
|
+
});
|
|
76
49
|
(0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('SKIP pkg-a@1.0.0');
|
|
77
|
-
(0, vitest_1.expect)(logger.info).not.toHaveBeenCalledWith('WRITE pkg-a CHANGELOG.md');
|
|
78
|
-
(0, vitest_1.expect)(releaseCommitView.render).toHaveBeenCalledWith({ packages: [] });
|
|
79
|
-
(0, vitest_1.expect)(vcs.commit).toHaveBeenCalledWith('release commit message');
|
|
80
50
|
});
|
|
81
|
-
(0, vitest_1.it)('given
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return { name: 'pkg-a', version: '1.0.0' };
|
|
86
|
-
}
|
|
87
|
-
if (filePath === '/repo/packages/pkg-b/package.json') {
|
|
88
|
-
return { name: 'pkg-b', version: '2.0.0' };
|
|
89
|
-
}
|
|
90
|
-
return undefined;
|
|
91
|
-
}),
|
|
92
|
-
writeJson: vitest_1.vi.fn(),
|
|
51
|
+
(0, vitest_1.it)('given release-triggering commits when release runs then it calls package and finalize plugin hooks with released state', () => {
|
|
52
|
+
const plugin = {
|
|
53
|
+
onPackageReleased: vitest_1.vi.fn(),
|
|
54
|
+
onReleaseComplete: vitest_1.vi.fn(),
|
|
93
55
|
};
|
|
94
|
-
const
|
|
56
|
+
const vsc = {
|
|
95
57
|
findManyCommitsSinceTag: vitest_1.vi
|
|
96
58
|
.fn()
|
|
97
59
|
.mockImplementation((tag) => tag === 'pkg-a@1.0.0' ? [ConventionalCommit_1.ConventionalCommit.parse('feat(pkg-a): add feature')] : [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-b): resolve bug')]),
|
|
98
|
-
createTag: vitest_1.vi.fn(),
|
|
99
|
-
commit: vitest_1.vi.fn(),
|
|
100
|
-
push: vitest_1.vi.fn(),
|
|
101
|
-
};
|
|
102
|
-
const changelog = {
|
|
103
|
-
addLog: vitest_1.vi.fn(),
|
|
104
|
-
render: vitest_1.vi.fn(),
|
|
105
|
-
};
|
|
106
|
-
const releaseCommitView = {
|
|
107
|
-
render: vitest_1.vi.fn().mockReturnValue('release commit message'),
|
|
108
|
-
};
|
|
109
|
-
const packageManager = {
|
|
110
|
-
bumpVersion: vitest_1.vi.fn(),
|
|
111
|
-
publish: vitest_1.vi.fn(),
|
|
112
60
|
};
|
|
113
61
|
const logger = {
|
|
114
62
|
info: vitest_1.vi.fn(),
|
|
115
63
|
};
|
|
116
|
-
const controller = new MonorepoController_1.MonorepoController(
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
];
|
|
127
|
-
|
|
128
|
-
(0, vitest_1.expect)(
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
name: 'pkg-a',
|
|
132
|
-
version: '1.1.0',
|
|
133
|
-
previousVersion: '1.0.0',
|
|
134
|
-
commits: [{ type: 'feat', subject: 'add feature', isBreaking: false }],
|
|
135
|
-
dependencyUpdates: [],
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
name: 'pkg-b',
|
|
139
|
-
version: '2.0.1',
|
|
140
|
-
previousVersion: '2.0.0',
|
|
141
|
-
commits: [{ type: 'fix', subject: 'resolve bug', isBreaking: false }],
|
|
142
|
-
dependencyUpdates: [],
|
|
143
|
-
},
|
|
144
|
-
],
|
|
145
|
-
});
|
|
146
|
-
(0, vitest_1.expect)(vcs.commit).toHaveBeenCalledWith('release commit message');
|
|
147
|
-
});
|
|
148
|
-
(0, vitest_1.it)('given released packages when release runs then it pushes tags and publishes packages by default', () => {
|
|
149
|
-
const fileSystemService = {
|
|
150
|
-
readJson: vitest_1.vi.fn((filePath) => {
|
|
151
|
-
if (filePath === '/repo/packages/pkg-a/package.json') {
|
|
152
|
-
return { name: 'pkg-a', version: '1.0.0' };
|
|
153
|
-
}
|
|
154
|
-
return undefined;
|
|
155
|
-
}),
|
|
156
|
-
writeJson: vitest_1.vi.fn(),
|
|
157
|
-
};
|
|
158
|
-
const vcs = {
|
|
159
|
-
findManyCommitsSinceTag: vitest_1.vi.fn().mockReturnValue([ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): release me')]),
|
|
160
|
-
createTag: vitest_1.vi.fn(),
|
|
161
|
-
commit: vitest_1.vi.fn(),
|
|
162
|
-
push: vitest_1.vi.fn(),
|
|
163
|
-
};
|
|
164
|
-
const changelog = {
|
|
165
|
-
addLog: vitest_1.vi.fn(),
|
|
166
|
-
render: vitest_1.vi.fn(),
|
|
167
|
-
};
|
|
168
|
-
const releaseCommitView = {
|
|
169
|
-
render: vitest_1.vi.fn().mockReturnValue('release commit message'),
|
|
170
|
-
};
|
|
171
|
-
const packageManager = {
|
|
172
|
-
bumpVersion: vitest_1.vi.fn(),
|
|
173
|
-
publish: vitest_1.vi.fn(),
|
|
174
|
-
};
|
|
175
|
-
const logger = {
|
|
176
|
-
info: vitest_1.vi.fn(),
|
|
177
|
-
};
|
|
178
|
-
const controller = new MonorepoController_1.MonorepoController(fileSystemService, vcs, changelog, releaseCommitView, packageManager, logger);
|
|
179
|
-
controller.packages = [
|
|
180
|
-
NpmPackage_1.NpmPackage.createFromPackage({
|
|
181
|
-
name: 'pkg-a',
|
|
182
|
-
version: '1.0.0',
|
|
183
|
-
}, '/repo/packages/pkg-a/package.json'),
|
|
184
|
-
];
|
|
185
|
-
controller.release();
|
|
186
|
-
(0, vitest_1.expect)(vcs.push).toHaveBeenCalledWith(true);
|
|
187
|
-
(0, vitest_1.expect)(packageManager.publish).toHaveBeenCalledTimes(1);
|
|
188
|
-
(0, vitest_1.expect)(packageManager.publish).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
|
|
189
|
-
name: 'pkg-a',
|
|
190
|
-
}));
|
|
191
|
-
});
|
|
192
|
-
(0, vitest_1.it)('given no push and no publish options when release runs then remote mutations are skipped', () => {
|
|
193
|
-
const fileSystemService = {
|
|
194
|
-
readJson: vitest_1.vi.fn((filePath) => {
|
|
195
|
-
if (filePath === '/repo/packages/pkg-a/package.json') {
|
|
196
|
-
return { name: 'pkg-a', version: '1.0.0' };
|
|
197
|
-
}
|
|
198
|
-
return undefined;
|
|
199
|
-
}),
|
|
200
|
-
writeJson: vitest_1.vi.fn(),
|
|
201
|
-
};
|
|
202
|
-
const vcs = {
|
|
203
|
-
findManyCommitsSinceTag: vitest_1.vi.fn().mockReturnValue([ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): release me')]),
|
|
204
|
-
createTag: vitest_1.vi.fn(),
|
|
205
|
-
commit: vitest_1.vi.fn(),
|
|
206
|
-
push: vitest_1.vi.fn(),
|
|
207
|
-
};
|
|
208
|
-
const changelog = {
|
|
209
|
-
addLog: vitest_1.vi.fn(),
|
|
210
|
-
render: vitest_1.vi.fn(),
|
|
211
|
-
};
|
|
212
|
-
const releaseCommitView = {
|
|
213
|
-
render: vitest_1.vi.fn().mockReturnValue('release commit message'),
|
|
214
|
-
};
|
|
215
|
-
const packageManager = {
|
|
216
|
-
bumpVersion: vitest_1.vi.fn(),
|
|
217
|
-
publish: vitest_1.vi.fn(),
|
|
218
|
-
};
|
|
219
|
-
const logger = {
|
|
220
|
-
info: vitest_1.vi.fn(),
|
|
221
|
-
};
|
|
222
|
-
const controller = new MonorepoController_1.MonorepoController(fileSystemService, vcs, changelog, releaseCommitView, packageManager, logger);
|
|
223
|
-
controller.packages = [
|
|
224
|
-
NpmPackage_1.NpmPackage.createFromPackage({
|
|
225
|
-
name: 'pkg-a',
|
|
226
|
-
version: '1.0.0',
|
|
227
|
-
}, '/repo/packages/pkg-a/package.json'),
|
|
228
|
-
];
|
|
229
|
-
controller.release({ push: false, publish: false });
|
|
230
|
-
(0, vitest_1.expect)(vcs.push).not.toHaveBeenCalled();
|
|
231
|
-
(0, vitest_1.expect)(packageManager.publish).not.toHaveBeenCalled();
|
|
64
|
+
const controller = new MonorepoController_1.MonorepoController([plugin], {}, vsc, logger);
|
|
65
|
+
const pkgA = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a/package.json');
|
|
66
|
+
const pkgB = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-b', version: '2.0.0' }, '/repo/packages/pkg-b/package.json');
|
|
67
|
+
controller.packageSortedList = [pkgA, pkgB];
|
|
68
|
+
controller.release({ noPush: true, noPublish: true });
|
|
69
|
+
(0, vitest_1.expect)(plugin.onPackageReleased).toHaveBeenCalledTimes(2);
|
|
70
|
+
(0, vitest_1.expect)(plugin.onReleaseComplete).toHaveBeenCalledTimes(1);
|
|
71
|
+
const finalizeArg = plugin.onReleaseComplete.mock.calls[0][0];
|
|
72
|
+
(0, vitest_1.expect)(finalizeArg.noPush).toBe(true);
|
|
73
|
+
(0, vitest_1.expect)(finalizeArg.noPublish).toBe(true);
|
|
74
|
+
(0, vitest_1.expect)(finalizeArg.releasedPackages.map((pkg) => pkg.name)).toEqual(['pkg-a', 'pkg-b']);
|
|
75
|
+
(0, vitest_1.expect)(finalizeArg.releasedVersions.get('pkg-a')).toBe('1.1.0');
|
|
76
|
+
(0, vitest_1.expect)(finalizeArg.releasedVersions.get('pkg-b')).toBe('2.0.1');
|
|
77
|
+
(0, vitest_1.expect)(finalizeArg.releasedCommits.get('pkg-a')).toHaveLength(1);
|
|
78
|
+
(0, vitest_1.expect)(finalizeArg.releasedCommits.get('pkg-b')).toHaveLength(1);
|
|
232
79
|
});
|
|
233
80
|
});
|
|
234
81
|
//# sourceMappingURL=MonorepoController.spec.js.map
|