@teambit/ci 0.0.14 → 0.0.16
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/ci.docs.mdx +32 -5
- package/commands/merge.cmd.ts +35 -2
- package/dist/ci.docs.mdx +32 -5
- package/dist/ci.main.runtime.d.ts +6 -5
- package/dist/ci.main.runtime.js +28 -55
- package/dist/ci.main.runtime.js.map +1 -1
- package/dist/commands/merge.cmd.d.ts +8 -0
- package/dist/commands/merge.cmd.js +16 -2
- package/dist/commands/merge.cmd.js.map +1 -1
- package/dist/commands/pr.cmd.d.ts +1 -4
- package/dist/{preview-1752614907700.js → preview-1752623975801.js} +1 -1
- package/package.json +5 -3
package/ci.docs.mdx
CHANGED
|
@@ -80,13 +80,21 @@ Run on the _pull-request_ event after tests but before any deploy step.
|
|
|
80
80
|
Publishes new semantic versions after a PR merges to `main`.
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
bit ci merge [--message <string>] [--build]
|
|
83
|
+
bit ci merge [--message <string>] [--build] [--increment <level>] [--patch|--minor|--major] [--increment-by <number>]
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
| Flag
|
|
87
|
-
|
|
|
88
|
-
| `--message`
|
|
89
|
-
| `--build`
|
|
86
|
+
| Flag | Shorthand | Description |
|
|
87
|
+
| ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
88
|
+
| `--message` | `-m` | Changelog entry (defaults to last Git commit message). |
|
|
89
|
+
| `--build` | `-b` | Build locally (otherwise Ripple-CI does it). Required if workspace contains _soft-tagged_ components. |
|
|
90
|
+
| `--strict` | `-s` | Fail on warnings as well as errors (default: only fails on errors). |
|
|
91
|
+
| `--increment` | `-l` | Version bump level: `major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, `prerelease` (default: `patch`). |
|
|
92
|
+
| `--patch` | `-p` | Shortcut for `--increment patch`. |
|
|
93
|
+
| `--minor` | | Shortcut for `--increment minor`. |
|
|
94
|
+
| `--major` | | Shortcut for `--increment major`. |
|
|
95
|
+
| `--pre-release` | | Shortcut for `--increment prerelease` with optional identifier. |
|
|
96
|
+
| `--prerelease-id` | | Prerelease identifier (e.g. "dev" to get "1.0.0-dev.1"). |
|
|
97
|
+
| `--increment-by` | | Increment by more than 1 (e.g. `--increment-by 2` with patch: 0.0.1 → 0.0.3). |
|
|
90
98
|
|
|
91
99
|
### Internal flow
|
|
92
100
|
|
|
@@ -112,6 +120,25 @@ bit ci merge [--message <string>] [--build]
|
|
|
112
120
|
git commit -m "chore(release): sync bitmap + lockfile"
|
|
113
121
|
```
|
|
114
122
|
|
|
123
|
+
### Version bump examples
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Default patch increment (1.0.0 → 1.0.1)
|
|
127
|
+
bit ci merge --message "fix: resolve memory leak"
|
|
128
|
+
|
|
129
|
+
# Minor version bump (1.0.0 → 1.1.0)
|
|
130
|
+
bit ci merge --minor --message "feat: add new API endpoint"
|
|
131
|
+
|
|
132
|
+
# Major version bump (1.0.0 → 2.0.0)
|
|
133
|
+
bit ci merge --major --message "feat!: breaking API changes"
|
|
134
|
+
|
|
135
|
+
# Prerelease increment (1.0.0 → 1.0.1-dev.1)
|
|
136
|
+
bit ci merge --pre-release dev --message "feat: experimental feature"
|
|
137
|
+
|
|
138
|
+
# Custom increment amount (1.0.0 → 1.0.3)
|
|
139
|
+
bit ci merge --patch --increment-by 3 --message "fix: critical patches"
|
|
140
|
+
```
|
|
141
|
+
|
|
115
142
|
### CI hint
|
|
116
143
|
|
|
117
144
|
Gate this step behind a branch-protection rule so only fast-forward merges trigger a release.
|
package/commands/merge.cmd.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { Command, CommandOptions } from '@teambit/cli';
|
|
2
2
|
import type { Logger } from '@teambit/logger';
|
|
3
3
|
import { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';
|
|
4
|
+
import { ReleaseType } from 'semver';
|
|
5
|
+
import { validateOptions } from '@teambit/snapping';
|
|
4
6
|
import { CiMain } from '../ci.main.runtime';
|
|
5
7
|
|
|
6
8
|
type Options = {
|
|
7
9
|
message?: string;
|
|
8
10
|
build?: boolean;
|
|
9
11
|
strict?: boolean;
|
|
12
|
+
increment?: ReleaseType;
|
|
13
|
+
patch?: boolean;
|
|
14
|
+
minor?: boolean;
|
|
15
|
+
major?: boolean;
|
|
16
|
+
preRelease?: string;
|
|
17
|
+
prereleaseId?: string;
|
|
18
|
+
incrementBy?: number;
|
|
10
19
|
};
|
|
11
20
|
|
|
12
21
|
export class CiMergeCmd implements Command {
|
|
@@ -15,9 +24,24 @@ export class CiMergeCmd implements Command {
|
|
|
15
24
|
group = 'collaborate';
|
|
16
25
|
|
|
17
26
|
options: CommandOptions = [
|
|
18
|
-
['m', 'message <message>', 'If set, use it as the
|
|
27
|
+
['m', 'message <message>', 'If set, use it as the tag message, if not, try and grab from git-commit-message'],
|
|
19
28
|
['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],
|
|
20
29
|
['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],
|
|
30
|
+
[
|
|
31
|
+
'l',
|
|
32
|
+
'increment <level>',
|
|
33
|
+
'options are: [major, premajor, minor, preminor, patch, prepatch, prerelease], default to patch',
|
|
34
|
+
],
|
|
35
|
+
['', 'prerelease-id <id>', 'prerelease identifier (e.g. "dev" to get "1.0.0-dev.1")'],
|
|
36
|
+
['p', 'patch', 'syntactic sugar for "--increment patch"'],
|
|
37
|
+
['', 'minor', 'syntactic sugar for "--increment minor"'],
|
|
38
|
+
['', 'major', 'syntactic sugar for "--increment major"'],
|
|
39
|
+
['', 'pre-release [identifier]', 'syntactic sugar for "--increment prerelease" and `--prerelease-id <identifier>`'],
|
|
40
|
+
[
|
|
41
|
+
'',
|
|
42
|
+
'increment-by <number>',
|
|
43
|
+
'(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',
|
|
44
|
+
],
|
|
21
45
|
];
|
|
22
46
|
|
|
23
47
|
constructor(
|
|
@@ -31,6 +55,15 @@ export class CiMergeCmd implements Command {
|
|
|
31
55
|
this.logger.console('🚀 Initializing Merge command');
|
|
32
56
|
if (!this.workspace) throw new OutsideWorkspaceError();
|
|
33
57
|
|
|
34
|
-
|
|
58
|
+
const { releaseType, preReleaseId } = validateOptions(options);
|
|
59
|
+
|
|
60
|
+
return this.ci.mergePr({
|
|
61
|
+
message: options.message,
|
|
62
|
+
build: options.build,
|
|
63
|
+
strict: options.strict,
|
|
64
|
+
releaseType,
|
|
65
|
+
preReleaseId,
|
|
66
|
+
incrementBy: options.incrementBy,
|
|
67
|
+
});
|
|
35
68
|
}
|
|
36
69
|
}
|
package/dist/ci.docs.mdx
CHANGED
|
@@ -80,13 +80,21 @@ Run on the _pull-request_ event after tests but before any deploy step.
|
|
|
80
80
|
Publishes new semantic versions after a PR merges to `main`.
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
bit ci merge [--message <string>] [--build]
|
|
83
|
+
bit ci merge [--message <string>] [--build] [--increment <level>] [--patch|--minor|--major] [--increment-by <number>]
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
-
| Flag
|
|
87
|
-
|
|
|
88
|
-
| `--message`
|
|
89
|
-
| `--build`
|
|
86
|
+
| Flag | Shorthand | Description |
|
|
87
|
+
| ----------------- | --------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
88
|
+
| `--message` | `-m` | Changelog entry (defaults to last Git commit message). |
|
|
89
|
+
| `--build` | `-b` | Build locally (otherwise Ripple-CI does it). Required if workspace contains _soft-tagged_ components. |
|
|
90
|
+
| `--strict` | `-s` | Fail on warnings as well as errors (default: only fails on errors). |
|
|
91
|
+
| `--increment` | `-l` | Version bump level: `major`, `premajor`, `minor`, `preminor`, `patch`, `prepatch`, `prerelease` (default: `patch`). |
|
|
92
|
+
| `--patch` | `-p` | Shortcut for `--increment patch`. |
|
|
93
|
+
| `--minor` | | Shortcut for `--increment minor`. |
|
|
94
|
+
| `--major` | | Shortcut for `--increment major`. |
|
|
95
|
+
| `--pre-release` | | Shortcut for `--increment prerelease` with optional identifier. |
|
|
96
|
+
| `--prerelease-id` | | Prerelease identifier (e.g. "dev" to get "1.0.0-dev.1"). |
|
|
97
|
+
| `--increment-by` | | Increment by more than 1 (e.g. `--increment-by 2` with patch: 0.0.1 → 0.0.3). |
|
|
90
98
|
|
|
91
99
|
### Internal flow
|
|
92
100
|
|
|
@@ -112,6 +120,25 @@ bit ci merge [--message <string>] [--build]
|
|
|
112
120
|
git commit -m "chore(release): sync bitmap + lockfile"
|
|
113
121
|
```
|
|
114
122
|
|
|
123
|
+
### Version bump examples
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# Default patch increment (1.0.0 → 1.0.1)
|
|
127
|
+
bit ci merge --message "fix: resolve memory leak"
|
|
128
|
+
|
|
129
|
+
# Minor version bump (1.0.0 → 1.1.0)
|
|
130
|
+
bit ci merge --minor --message "feat: add new API endpoint"
|
|
131
|
+
|
|
132
|
+
# Major version bump (1.0.0 → 2.0.0)
|
|
133
|
+
bit ci merge --major --message "feat!: breaking API changes"
|
|
134
|
+
|
|
135
|
+
# Prerelease increment (1.0.0 → 1.0.1-dev.1)
|
|
136
|
+
bit ci merge --pre-release dev --message "feat: experimental feature"
|
|
137
|
+
|
|
138
|
+
# Custom increment amount (1.0.0 → 1.0.3)
|
|
139
|
+
bit ci merge --patch --increment-by 3 --message "fix: critical patches"
|
|
140
|
+
```
|
|
141
|
+
|
|
115
142
|
### CI hint
|
|
116
143
|
|
|
117
144
|
Gate this step behind a branch-protection rule so only fast-forward merges trigger a release.
|
|
@@ -9,6 +9,7 @@ import { type SnappingMain } from '@teambit/snapping';
|
|
|
9
9
|
import { type ExportMain } from '@teambit/export';
|
|
10
10
|
import { type ImporterMain } from '@teambit/importer';
|
|
11
11
|
import { type CheckoutMain } from '@teambit/checkout';
|
|
12
|
+
import { ReleaseType } from 'semver';
|
|
12
13
|
export interface CiWorkspaceConfig {
|
|
13
14
|
commitMessageScript?: string;
|
|
14
15
|
}
|
|
@@ -54,14 +55,14 @@ export declare class CiMain {
|
|
|
54
55
|
message: string;
|
|
55
56
|
build: boolean | undefined;
|
|
56
57
|
strict: boolean | undefined;
|
|
57
|
-
}): Promise<"No changes detected, nothing to snap" |
|
|
58
|
-
|
|
59
|
-
data: string;
|
|
60
|
-
} | undefined>;
|
|
61
|
-
mergePr({ message: argMessage, build, strict }: {
|
|
58
|
+
}): Promise<"No changes detected, nothing to snap" | undefined>;
|
|
59
|
+
mergePr({ message: argMessage, build, strict, releaseType, preReleaseId, incrementBy, }: {
|
|
62
60
|
message?: string;
|
|
63
61
|
build?: boolean;
|
|
64
62
|
strict?: boolean;
|
|
63
|
+
releaseType?: ReleaseType;
|
|
64
|
+
preReleaseId?: string;
|
|
65
|
+
incrementBy?: number;
|
|
65
66
|
}): Promise<{
|
|
66
67
|
code: number;
|
|
67
68
|
data: string;
|
package/dist/ci.main.runtime.js
CHANGED
|
@@ -234,41 +234,28 @@ class CiMain {
|
|
|
234
234
|
this.logger.console('📊 Workspace Status');
|
|
235
235
|
this.logger.console(_chalk().default.blue('Verifying status of workspace'));
|
|
236
236
|
const status = await this.status.status({
|
|
237
|
-
lanes: true
|
|
238
|
-
ignoreCircularDependencies: false
|
|
237
|
+
lanes: true
|
|
239
238
|
});
|
|
239
|
+
const {
|
|
240
|
+
data: statusOutput,
|
|
241
|
+
code
|
|
242
|
+
} = await this.status.formatStatusOutput(status, strict ? {
|
|
243
|
+
strict: true,
|
|
244
|
+
warnings: true
|
|
245
|
+
} // When strict=true, fail on both errors and warnings
|
|
246
|
+
: {
|
|
247
|
+
failOnError: true,
|
|
248
|
+
warnings: false
|
|
249
|
+
} // By default, fail only on errors (tag blockers)
|
|
250
|
+
);
|
|
240
251
|
|
|
241
|
-
//
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
const componentsWithWarnings = status.componentsWithIssues.filter(({
|
|
246
|
-
issues
|
|
247
|
-
}) => !issues.hasTagBlockerIssues());
|
|
248
|
-
if (componentsWithWarnings.length > 0) {
|
|
249
|
-
if (strict) {
|
|
250
|
-
this.logger.console(_chalk().default.red(`Found ${componentsWithWarnings.length} components with warnings (strict mode), run 'bit status' to see the warnings.`));
|
|
251
|
-
return {
|
|
252
|
-
code: 1,
|
|
253
|
-
data: '',
|
|
254
|
-
status
|
|
255
|
-
};
|
|
256
|
-
} else {
|
|
257
|
-
this.logger.console(_chalk().default.yellow(`Found ${componentsWithWarnings.length} components with warnings, run 'bit status' to see the warnings.`));
|
|
258
|
-
}
|
|
252
|
+
// Log the formatted status output
|
|
253
|
+
this.logger.console(statusOutput);
|
|
254
|
+
if (code !== 0) {
|
|
255
|
+
throw new Error('Workspace status verification failed');
|
|
259
256
|
}
|
|
260
|
-
|
|
261
|
-
this.logger.console(_chalk().default.red(`Found ${componentsWithErrors.length} components with errors, run 'bit status' to see the errors.`));
|
|
262
|
-
return {
|
|
263
|
-
code: 1,
|
|
264
|
-
data: '',
|
|
265
|
-
status
|
|
266
|
-
};
|
|
267
|
-
}
|
|
268
|
-
this.logger.console(_chalk().default.green('Workspace status is correct'));
|
|
257
|
+
this.logger.consoleSuccess(_chalk().default.green('Workspace status is correct'));
|
|
269
258
|
return {
|
|
270
|
-
code: 0,
|
|
271
|
-
data: '',
|
|
272
259
|
status
|
|
273
260
|
};
|
|
274
261
|
}
|
|
@@ -289,14 +276,7 @@ class CiMain {
|
|
|
289
276
|
});
|
|
290
277
|
}
|
|
291
278
|
async verifyWorkspaceStatus() {
|
|
292
|
-
|
|
293
|
-
code,
|
|
294
|
-
data
|
|
295
|
-
} = await this.verifyWorkspaceStatusInternal();
|
|
296
|
-
if (code !== 0) return {
|
|
297
|
-
code,
|
|
298
|
-
data
|
|
299
|
-
};
|
|
279
|
+
await this.verifyWorkspaceStatusInternal();
|
|
300
280
|
this.logger.console('🔨 Build Process');
|
|
301
281
|
const components = await this.workspace.list();
|
|
302
282
|
this.logger.console(_chalk().default.blue(`Building ${components.length} components`));
|
|
@@ -317,14 +297,7 @@ class CiMain {
|
|
|
317
297
|
this.logger.console(_chalk().default.blue(`Lane name: ${laneIdStr}`));
|
|
318
298
|
const originalLane = await this.lanes.getCurrentLane();
|
|
319
299
|
const laneId = await this.lanes.parseLaneId(laneIdStr);
|
|
320
|
-
|
|
321
|
-
code,
|
|
322
|
-
data
|
|
323
|
-
} = await this.verifyWorkspaceStatusInternal(strict);
|
|
324
|
-
if (code !== 0) return {
|
|
325
|
-
code,
|
|
326
|
-
data
|
|
327
|
-
};
|
|
300
|
+
await this.verifyWorkspaceStatusInternal(strict);
|
|
328
301
|
await this.importer.import({
|
|
329
302
|
ids: [],
|
|
330
303
|
installNpmPackages: false,
|
|
@@ -413,7 +386,10 @@ class CiMain {
|
|
|
413
386
|
async mergePr({
|
|
414
387
|
message: argMessage,
|
|
415
388
|
build,
|
|
416
|
-
strict
|
|
389
|
+
strict,
|
|
390
|
+
releaseType,
|
|
391
|
+
preReleaseId,
|
|
392
|
+
incrementBy
|
|
417
393
|
}) {
|
|
418
394
|
const message = argMessage || (await this.getGitCommitMessage());
|
|
419
395
|
if (!message) {
|
|
@@ -463,14 +439,8 @@ class CiMain {
|
|
|
463
439
|
all: true
|
|
464
440
|
})));
|
|
465
441
|
const {
|
|
466
|
-
code,
|
|
467
|
-
data,
|
|
468
442
|
status
|
|
469
443
|
} = await this.verifyWorkspaceStatusInternal(strict);
|
|
470
|
-
if (code !== 0) return {
|
|
471
|
-
code,
|
|
472
|
-
data
|
|
473
|
-
};
|
|
474
444
|
const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;
|
|
475
445
|
this.logger.console('📦 Component Operations');
|
|
476
446
|
this.logger.console(_chalk().default.blue('Tagging components'));
|
|
@@ -479,7 +449,10 @@ class CiMain {
|
|
|
479
449
|
message,
|
|
480
450
|
build,
|
|
481
451
|
failFast: true,
|
|
482
|
-
persist: hasSoftTaggedComponents
|
|
452
|
+
persist: hasSoftTaggedComponents,
|
|
453
|
+
releaseType,
|
|
454
|
+
preReleaseId,
|
|
455
|
+
incrementBy
|
|
483
456
|
});
|
|
484
457
|
if (tagResults) {
|
|
485
458
|
const tagOutput = (0, _snapping().tagResultOutput)(tagResults);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_execa","_interopRequireDefault","_chalk","_ci","_ci2","_verify","_pr","_merge","_git","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","config","provider","cli","loggerAspect","createLogger","CiAspect","id","ci","ciCmd","CiCmd","commands","CiVerifyCmd","CiPrCmd","CiMergeCmd","register","getBranchName","process","env","GITHUB_HEAD_REF","branch","git","current","Error","toString","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","getCustomCommitMessage","commitMessageScript","blue","parts","command","args","slice","execa","cwd","path","encoding","customMessage","stdout","green","verifyWorkspaceStatusInternal","strict","ignoreCircularDependencies","componentsWithErrors","componentsWithIssues","issues","hasTagBlockerIssues","componentsWithWarnings","red","code","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","skipDependencyInstallation","catch","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","laneIdStr","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","availableLanesInScope","getLanes","remote","scope","laneExists","find","lane","name","foundErr","importLaneObject","consumer","setCurrentLane","laneIds","toComponentIds","compId","bitMap","updateComponentId","write","importCurrentObjects","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","snappedComponents","snapOutput","snapResultOutput","exportResults","export","componentsIds","skipNpmInstall","mergePr","argMessage","gitStatus","hasChanges","files","stash","pull","checkoutProps","listIds","checkoutResults","checkoutOutput","hasSoftTaggedComponents","softTaggedComponents","tagResults","tag","failFast","persist","tagOutput","tagResultOutput","hasTaggedComponents","taggedComponents","exportResult","addConfig","add","commitMessage","archiveLane","removeLanes","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","BuilderAspect","StatusAspect","LanesAspect","SnappingAspect","ExportAspect","ImporterAspect","CheckoutAspect","addRuntime"],"sources":["ci.main.runtime.ts"],"sourcesContent":["import type { RuntimeDefinition } from '@teambit/harmony';\nimport { CLIAspect, type CLIMain, MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, type LoggerMain, type Logger } from '@teambit/logger';\nimport { WorkspaceAspect, type Workspace } from '@teambit/workspace';\nimport { BuilderAspect, type BuilderMain } from '@teambit/builder';\nimport { StatusAspect, type StatusMain } from '@teambit/status';\nimport { LanesAspect, type LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, SnapResults, tagResultOutput, snapResultOutput, type SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, checkoutOutput, type CheckoutMain } from '@teambit/checkout';\nimport { SwitchLaneOptions } from '@teambit/lanes';\nimport execa from 'execa';\nimport chalk from 'chalk';\nimport { CiAspect } from './ci.aspect';\nimport { CiCmd } from './ci.cmd';\nimport { CiVerifyCmd } from './commands/verify.cmd';\nimport { CiPrCmd } from './commands/pr.cmd';\nimport { CiMergeCmd } from './commands/merge.cmd';\nimport { git } from './git';\n\nexport interface CiWorkspaceConfig {\n commitMessageScript?: string;\n}\n\nexport class CiMain {\n static runtime = MainRuntime as RuntimeDefinition;\n\n static dependencies: any = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n BuilderAspect,\n StatusAspect,\n LanesAspect,\n SnappingAspect,\n ExportAspect,\n ImporterAspect,\n CheckoutAspect,\n ];\n\n static slots: any = [];\n\n constructor(\n private workspace: Workspace,\n\n private builder: BuilderMain,\n\n private status: StatusMain,\n\n private lanes: LanesMain,\n\n private snapping: SnappingMain,\n\n private exporter: ExportMain,\n\n private importer: ImporterMain,\n\n private checkout: CheckoutMain,\n\n private logger: Logger,\n\n private config: CiWorkspaceConfig\n ) {}\n\n static async provider(\n [cli, workspace, loggerAspect, builder, status, lanes, snapping, exporter, importer, checkout]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ],\n config: CiWorkspaceConfig\n ) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger, config);\n const ciCmd = new CiCmd(workspace, logger);\n ciCmd.commands = [\n new CiVerifyCmd(workspace, logger, ci),\n new CiPrCmd(workspace, logger, ci),\n new CiMergeCmd(workspace, logger, ci),\n ];\n cli.register(ciCmd);\n\n return ci;\n }\n\n async getBranchName() {\n try {\n // if we are running on github, use the GITHUB_HEAD_REF env var\n if (process.env.GITHUB_HEAD_REF) return process.env.GITHUB_HEAD_REF;\n\n const branch = await git.branch();\n return branch.current;\n } catch (e: any) {\n throw new Error(`Unable to read branch: ${e.toString()}`);\n }\n }\n\n async getDefaultBranchName() {\n try {\n // Try to get the default branch from git symbolic-ref\n const result = await git.raw(['symbolic-ref', 'refs/remotes/origin/HEAD']);\n const defaultBranch = result.trim().split('/').pop();\n return defaultBranch || 'master';\n } catch (e: any) {\n // Fallback to common default branch names\n try {\n const branches = await git.branch(['-r']);\n if (branches.all.includes('origin/main')) return 'main';\n if (branches.all.includes('origin/master')) return 'master';\n return 'master'; // Final fallback\n } catch {\n this.logger.console(chalk.yellow(`Unable to detect default branch, using 'master': ${e.toString()}`));\n return 'master';\n }\n }\n }\n\n async getGitCommitMessage() {\n try {\n const commit = await git.log({\n maxCount: 1,\n });\n if (!commit.latest) {\n return null;\n }\n const { message, body } = commit.latest;\n return body ? `${message}\\n\\n${body}` : message;\n } catch (e: any) {\n throw new Error(`Unable to read commit message: ${e.toString()}`);\n }\n }\n\n private async getCustomCommitMessage() {\n try {\n const commitMessageScript = this.config.commitMessageScript;\n\n if (commitMessageScript) {\n this.logger.console(chalk.blue(`Running custom commit message script: ${commitMessageScript}`));\n\n // Parse the command to avoid shell injection\n const parts = commitMessageScript.split(' ');\n const command = parts[0];\n const args = parts.slice(1);\n\n const result = await execa(command, args, {\n cwd: this.workspace.path,\n encoding: 'utf8',\n });\n const customMessage = result.stdout.trim();\n\n if (customMessage) {\n this.logger.console(chalk.green(`Using custom commit message: ${customMessage}`));\n return customMessage;\n }\n }\n } catch (e: any) {\n this.logger.console(chalk.yellow(`Failed to run custom commit message script: ${e.toString()}`));\n }\n\n // Fallback to default message\n return 'chore: update .bitmap and lockfiles as needed [skip ci]';\n }\n\n private async verifyWorkspaceStatusInternal(strict: boolean = false) {\n this.logger.console('📊 Workspace Status');\n this.logger.console(chalk.blue('Verifying status of workspace'));\n const status = await this.status.status({\n lanes: true,\n ignoreCircularDependencies: false,\n });\n\n // Check for blocking issues (errors) vs warnings\n const componentsWithErrors = status.componentsWithIssues.filter(({ issues }) => issues.hasTagBlockerIssues());\n\n const componentsWithWarnings = status.componentsWithIssues.filter(({ issues }) => !issues.hasTagBlockerIssues());\n\n if (componentsWithWarnings.length > 0) {\n if (strict) {\n this.logger.console(\n chalk.red(\n `Found ${componentsWithWarnings.length} components with warnings (strict mode), run 'bit status' to see the warnings.`\n )\n );\n return { code: 1, data: '', status };\n } else {\n this.logger.console(\n chalk.yellow(\n `Found ${componentsWithWarnings.length} components with warnings, run 'bit status' to see the warnings.`\n )\n );\n }\n }\n\n if (componentsWithErrors.length > 0) {\n this.logger.console(\n chalk.red(`Found ${componentsWithErrors.length} components with errors, run 'bit status' to see the errors.`)\n );\n return { code: 1, data: '', status };\n }\n\n this.logger.console(chalk.green('Workspace status is correct'));\n return { code: 0, data: '', status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n await this.lanes\n .switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n skipDependencyInstallation: true,\n ...options,\n })\n .catch((e) => {\n if (e.toString().includes('already checked out')) {\n this.logger.console(chalk.yellow(`Lane ${laneName} already checked out, skipping checkout`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to checkout lane ${laneName}: ${e.toString()}`));\n return null;\n });\n }\n\n async verifyWorkspaceStatus() {\n const { code, data } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n this.logger.console('🔨 Build Process');\n const components = await this.workspace.list();\n\n this.logger.console(chalk.blue(`Building ${components.length} components`));\n\n const build = await this.builder.build(components);\n\n build.throwErrorsIfExist();\n\n this.logger.console(chalk.green('Components built'));\n\n return { code: 0, data: '' };\n }\n\n async snapPrCommit({\n laneIdStr,\n message,\n build,\n strict,\n }: {\n laneIdStr: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n }) {\n this.logger.console(chalk.blue(`Lane name: ${laneIdStr}`));\n\n const originalLane = await this.lanes.getCurrentLane();\n\n const laneId = await this.lanes.parseLaneId(laneIdStr);\n\n const { code, data } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n await this.importer\n .import({\n ids: [],\n installNpmPackages: false,\n writeConfigFiles: false,\n })\n .catch((e) => {\n throw new Error(`Failed to import components: ${e.toString()}`);\n });\n\n this.logger.console('🔄 Lane Management');\n const availableLanesInScope = await this.lanes\n .getLanes({\n remote: laneId.scope,\n })\n .catch((e) => {\n throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);\n });\n\n const laneExists = availableLanesInScope.find((lane) => lane.id.name === laneId.name);\n\n let foundErr: Error | undefined;\n try {\n if (laneExists) {\n const lane = await this.lanes.importLaneObject(laneId, true);\n this.workspace.consumer.setCurrentLane(laneId, true);\n const laneIds = lane.toComponentIds();\n laneIds.forEach((compId) => this.workspace.consumer.bitMap.updateComponentId(compId));\n await this.workspace.bitMap.write();\n await this.importer.importCurrentObjects();\n\n this.logger.console(chalk.green(`Imported lane ${laneId.toString()}`));\n } else {\n this.logger.console(chalk.blue(`Creating lane ${laneId.toString()}`));\n\n try {\n await this.lanes.createLane(laneId.name, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n });\n } catch (e: any) {\n if (e.message.includes('already exists')) {\n this.logger.console(chalk.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));\n } else {\n throw new Error(`Failed to create lane ${laneId.toString()}: ${e.toString()}`);\n }\n }\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n this.logger.console(chalk.blue(`Current lane: ${currentLane?.name ?? 'main'}`));\n\n if (currentLane?.name === laneId.name) {\n this.logger.console(chalk.yellow(`Current lane is already ${laneId.name}, skipping switch`));\n } else {\n await this.switchToLane(laneId.toString());\n }\n\n this.logger.console('📦 Snapping Components');\n const results = await this.snapping.snap({\n message,\n build,\n exitOnFirstFailedTask: true,\n });\n\n if (!results) {\n return 'No changes detected, nothing to snap';\n }\n\n const { snappedComponents }: SnapResults = results;\n\n const snapOutput = snapResultOutput(results);\n this.logger.console(snapOutput);\n\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n\n const exportResults = await this.exporter.export();\n\n this.logger.console(chalk.green(`Exported ${exportResults.componentsIds.length} components`));\n } catch (e: any) {\n foundErr = e;\n throw e;\n } finally {\n if (foundErr) {\n this.logger.console(chalk.red(`Found error: ${foundErr.message}`));\n }\n // Whatever happens, switch back to the original lane\n this.logger.console('🔄 Cleanup');\n this.logger.console(chalk.blue(`Switching back to ${originalLane?.name ?? 'main'}`));\n const lane = await this.lanes.getCurrentLane();\n if (!lane) {\n this.logger.console(chalk.yellow('Already on main, no need to switch. Checking out to head'));\n await this.lanes.checkout.checkout({\n head: true,\n skipNpmInstall: true,\n });\n } else {\n await this.switchToLane(originalLane?.name ?? 'main');\n }\n }\n }\n\n async mergePr({ message: argMessage, build, strict }: { message?: string; build?: boolean; strict?: boolean }) {\n const message = argMessage || (await this.getGitCommitMessage());\n if (!message) {\n throw new Error('Failed to get commit message from git. Please provide a message using --message option.');\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n if (currentLane) {\n // this doesn't normally happen. we expect this mergePr to be called from the default branch, which normally checks\n // out to main lane.\n this.logger.console(chalk.blue(`Currently on lane ${currentLane.name}, switching to main`));\n await this.switchToLane('main');\n this.logger.console(chalk.green('Switched to main lane'));\n }\n\n // Pull latest changes from remote to ensure we have the most up-to-date .bitmap\n // This prevents issues when multiple PRs are merged in sequence\n const defaultBranch = await this.getDefaultBranchName();\n this.logger.console(chalk.blue(`Pulling latest git changes from ${defaultBranch} branch`));\n\n // Check if there are any changes to stash before rebasing\n const gitStatus = await git.status();\n const hasChanges = gitStatus.files.length > 0;\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Stashing uncommitted changes before rebase'));\n await git.stash(['push', '-u', '-m', 'CI merge temporary stash']);\n }\n\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Restoring stashed changes after rebase'));\n await git.stash(['pop']);\n }\n\n this.logger.console(chalk.green('Pulled latest git changes'));\n\n this.logger.console('🔄 Checking out to main head');\n await this.importer.importCurrentObjects();\n\n const checkoutProps = {\n ids: this.workspace.listIds(),\n forceOurs: true,\n head: true,\n skipNpmInstall: true,\n };\n const checkoutResults = await this.checkout.checkout(checkoutProps);\n await this.workspace.bitMap.write('checkout head');\n // all: true is to make it less verbose in the output. this workaround will be fixed later.\n this.logger.console(checkoutOutput(checkoutResults, { ...checkoutProps, all: true }));\n\n const { code, data, status } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;\n\n this.logger.console('📦 Component Operations');\n this.logger.console(chalk.blue('Tagging components'));\n const tagResults = await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n });\n\n if (tagResults) {\n const tagOutput = tagResultOutput(tagResults);\n this.logger.console(tagOutput);\n } else {\n this.logger.console(chalk.yellow('No components to tag'));\n }\n\n const hasTaggedComponents = tagResults?.taggedComponents && tagResults.taggedComponents.length > 0;\n\n if (hasTaggedComponents) {\n this.logger.console(chalk.blue('Exporting components'));\n const exportResult = await this.exporter.export();\n\n if (exportResult.componentsIds.length > 0) {\n this.logger.console(chalk.green(`Exported ${exportResult.componentsIds.length} component(s)`));\n } else {\n this.logger.console(chalk.yellow('Nothing to export'));\n }\n\n this.logger.console('🔄 Git Operations');\n // Set user.email and user.name\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n // Commit the .bitmap and pnpm-lock.yaml files using Git\n await git.add(['.bitmap', 'pnpm-lock.yaml']);\n\n const commitMessage = await this.getCustomCommitMessage();\n await git.commit(commitMessage);\n\n // Pull latest changes and push the commit to the remote repository\n // At this point we have just committed changes, so no need to stash\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n await git.push('origin', defaultBranch);\n } else {\n this.logger.console(chalk.yellow('No components were tagged, skipping export and git operations'));\n }\n\n this.logger.console(chalk.green('Merged PR'));\n\n if (currentLane) {\n this.logger.console('🗑️ Lane Cleanup');\n const laneId = currentLane.id;\n this.logger.console(chalk.blue(`Archiving lane ${laneId.toString()}`));\n const archiveLane = await this.lanes.removeLanes([laneId()]);\n if (archiveLane) {\n this.logger.console(chalk.green('Lane archived'));\n } else {\n this.logger.console(chalk.yellow('Failed to archive lane'));\n }\n }\n\n return { code: 0, data: '' };\n }\n}\n\n// @ts-ignore\nCiAspect.addRuntime(CiMain);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_execa","_interopRequireDefault","_chalk","_ci","_ci2","_verify","_pr","_merge","_git","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","config","provider","cli","loggerAspect","createLogger","CiAspect","id","ci","ciCmd","CiCmd","commands","CiVerifyCmd","CiPrCmd","CiMergeCmd","register","getBranchName","process","env","GITHUB_HEAD_REF","branch","git","current","Error","toString","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","getCustomCommitMessage","commitMessageScript","blue","parts","command","args","slice","execa","cwd","path","encoding","customMessage","stdout","green","verifyWorkspaceStatusInternal","strict","statusOutput","code","formatStatusOutput","warnings","failOnError","consoleSuccess","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","skipDependencyInstallation","catch","red","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","laneIdStr","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","availableLanesInScope","getLanes","remote","scope","laneExists","find","lane","name","foundErr","importLaneObject","consumer","setCurrentLane","laneIds","toComponentIds","compId","bitMap","updateComponentId","write","importCurrentObjects","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","snappedComponents","snapOutput","snapResultOutput","exportResults","export","componentsIds","skipNpmInstall","mergePr","argMessage","releaseType","preReleaseId","incrementBy","gitStatus","hasChanges","files","stash","pull","checkoutProps","listIds","checkoutResults","checkoutOutput","hasSoftTaggedComponents","softTaggedComponents","tagResults","tag","failFast","persist","tagOutput","tagResultOutput","hasTaggedComponents","taggedComponents","exportResult","addConfig","add","commitMessage","archiveLane","removeLanes","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","BuilderAspect","StatusAspect","LanesAspect","SnappingAspect","ExportAspect","ImporterAspect","CheckoutAspect","addRuntime"],"sources":["ci.main.runtime.ts"],"sourcesContent":["import type { RuntimeDefinition } from '@teambit/harmony';\nimport { CLIAspect, type CLIMain, MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, type LoggerMain, type Logger } from '@teambit/logger';\nimport { WorkspaceAspect, type Workspace } from '@teambit/workspace';\nimport { BuilderAspect, type BuilderMain } from '@teambit/builder';\nimport { StatusAspect, type StatusMain } from '@teambit/status';\nimport { LanesAspect, type LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, SnapResults, tagResultOutput, snapResultOutput, type SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, checkoutOutput, type CheckoutMain } from '@teambit/checkout';\nimport { SwitchLaneOptions } from '@teambit/lanes';\nimport execa from 'execa';\nimport chalk from 'chalk';\nimport { ReleaseType } from 'semver';\nimport { CiAspect } from './ci.aspect';\nimport { CiCmd } from './ci.cmd';\nimport { CiVerifyCmd } from './commands/verify.cmd';\nimport { CiPrCmd } from './commands/pr.cmd';\nimport { CiMergeCmd } from './commands/merge.cmd';\nimport { git } from './git';\n\nexport interface CiWorkspaceConfig {\n commitMessageScript?: string;\n}\n\nexport class CiMain {\n static runtime = MainRuntime as RuntimeDefinition;\n\n static dependencies: any = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n BuilderAspect,\n StatusAspect,\n LanesAspect,\n SnappingAspect,\n ExportAspect,\n ImporterAspect,\n CheckoutAspect,\n ];\n\n static slots: any = [];\n\n constructor(\n private workspace: Workspace,\n\n private builder: BuilderMain,\n\n private status: StatusMain,\n\n private lanes: LanesMain,\n\n private snapping: SnappingMain,\n\n private exporter: ExportMain,\n\n private importer: ImporterMain,\n\n private checkout: CheckoutMain,\n\n private logger: Logger,\n\n private config: CiWorkspaceConfig\n ) {}\n\n static async provider(\n [cli, workspace, loggerAspect, builder, status, lanes, snapping, exporter, importer, checkout]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ],\n config: CiWorkspaceConfig\n ) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger, config);\n const ciCmd = new CiCmd(workspace, logger);\n ciCmd.commands = [\n new CiVerifyCmd(workspace, logger, ci),\n new CiPrCmd(workspace, logger, ci),\n new CiMergeCmd(workspace, logger, ci),\n ];\n cli.register(ciCmd);\n\n return ci;\n }\n\n async getBranchName() {\n try {\n // if we are running on github, use the GITHUB_HEAD_REF env var\n if (process.env.GITHUB_HEAD_REF) return process.env.GITHUB_HEAD_REF;\n\n const branch = await git.branch();\n return branch.current;\n } catch (e: any) {\n throw new Error(`Unable to read branch: ${e.toString()}`);\n }\n }\n\n async getDefaultBranchName() {\n try {\n // Try to get the default branch from git symbolic-ref\n const result = await git.raw(['symbolic-ref', 'refs/remotes/origin/HEAD']);\n const defaultBranch = result.trim().split('/').pop();\n return defaultBranch || 'master';\n } catch (e: any) {\n // Fallback to common default branch names\n try {\n const branches = await git.branch(['-r']);\n if (branches.all.includes('origin/main')) return 'main';\n if (branches.all.includes('origin/master')) return 'master';\n return 'master'; // Final fallback\n } catch {\n this.logger.console(chalk.yellow(`Unable to detect default branch, using 'master': ${e.toString()}`));\n return 'master';\n }\n }\n }\n\n async getGitCommitMessage() {\n try {\n const commit = await git.log({\n maxCount: 1,\n });\n if (!commit.latest) {\n return null;\n }\n const { message, body } = commit.latest;\n return body ? `${message}\\n\\n${body}` : message;\n } catch (e: any) {\n throw new Error(`Unable to read commit message: ${e.toString()}`);\n }\n }\n\n private async getCustomCommitMessage() {\n try {\n const commitMessageScript = this.config.commitMessageScript;\n\n if (commitMessageScript) {\n this.logger.console(chalk.blue(`Running custom commit message script: ${commitMessageScript}`));\n\n // Parse the command to avoid shell injection\n const parts = commitMessageScript.split(' ');\n const command = parts[0];\n const args = parts.slice(1);\n\n const result = await execa(command, args, {\n cwd: this.workspace.path,\n encoding: 'utf8',\n });\n const customMessage = result.stdout.trim();\n\n if (customMessage) {\n this.logger.console(chalk.green(`Using custom commit message: ${customMessage}`));\n return customMessage;\n }\n }\n } catch (e: any) {\n this.logger.console(chalk.yellow(`Failed to run custom commit message script: ${e.toString()}`));\n }\n\n // Fallback to default message\n return 'chore: update .bitmap and lockfiles as needed [skip ci]';\n }\n\n private async verifyWorkspaceStatusInternal(strict: boolean = false) {\n this.logger.console('📊 Workspace Status');\n this.logger.console(chalk.blue('Verifying status of workspace'));\n\n const status = await this.status.status({ lanes: true });\n const { data: statusOutput, code } = await this.status.formatStatusOutput(\n status,\n strict\n ? { strict: true, warnings: true } // When strict=true, fail on both errors and warnings\n : { failOnError: true, warnings: false } // By default, fail only on errors (tag blockers)\n );\n\n // Log the formatted status output\n this.logger.console(statusOutput);\n\n if (code !== 0) {\n throw new Error('Workspace status verification failed');\n }\n\n this.logger.consoleSuccess(chalk.green('Workspace status is correct'));\n return { status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n await this.lanes\n .switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n skipDependencyInstallation: true,\n ...options,\n })\n .catch((e) => {\n if (e.toString().includes('already checked out')) {\n this.logger.console(chalk.yellow(`Lane ${laneName} already checked out, skipping checkout`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to checkout lane ${laneName}: ${e.toString()}`));\n return null;\n });\n }\n\n async verifyWorkspaceStatus() {\n await this.verifyWorkspaceStatusInternal();\n\n this.logger.console('🔨 Build Process');\n const components = await this.workspace.list();\n\n this.logger.console(chalk.blue(`Building ${components.length} components`));\n\n const build = await this.builder.build(components);\n\n build.throwErrorsIfExist();\n\n this.logger.console(chalk.green('Components built'));\n\n return { code: 0, data: '' };\n }\n\n async snapPrCommit({\n laneIdStr,\n message,\n build,\n strict,\n }: {\n laneIdStr: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n }) {\n this.logger.console(chalk.blue(`Lane name: ${laneIdStr}`));\n\n const originalLane = await this.lanes.getCurrentLane();\n\n const laneId = await this.lanes.parseLaneId(laneIdStr);\n\n await this.verifyWorkspaceStatusInternal(strict);\n\n await this.importer\n .import({\n ids: [],\n installNpmPackages: false,\n writeConfigFiles: false,\n })\n .catch((e) => {\n throw new Error(`Failed to import components: ${e.toString()}`);\n });\n\n this.logger.console('🔄 Lane Management');\n const availableLanesInScope = await this.lanes\n .getLanes({\n remote: laneId.scope,\n })\n .catch((e) => {\n throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);\n });\n\n const laneExists = availableLanesInScope.find((lane) => lane.id.name === laneId.name);\n\n let foundErr: Error | undefined;\n try {\n if (laneExists) {\n const lane = await this.lanes.importLaneObject(laneId, true);\n this.workspace.consumer.setCurrentLane(laneId, true);\n const laneIds = lane.toComponentIds();\n laneIds.forEach((compId) => this.workspace.consumer.bitMap.updateComponentId(compId));\n await this.workspace.bitMap.write();\n await this.importer.importCurrentObjects();\n\n this.logger.console(chalk.green(`Imported lane ${laneId.toString()}`));\n } else {\n this.logger.console(chalk.blue(`Creating lane ${laneId.toString()}`));\n\n try {\n await this.lanes.createLane(laneId.name, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n });\n } catch (e: any) {\n if (e.message.includes('already exists')) {\n this.logger.console(chalk.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));\n } else {\n throw new Error(`Failed to create lane ${laneId.toString()}: ${e.toString()}`);\n }\n }\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n this.logger.console(chalk.blue(`Current lane: ${currentLane?.name ?? 'main'}`));\n\n if (currentLane?.name === laneId.name) {\n this.logger.console(chalk.yellow(`Current lane is already ${laneId.name}, skipping switch`));\n } else {\n await this.switchToLane(laneId.toString());\n }\n\n this.logger.console('📦 Snapping Components');\n const results = await this.snapping.snap({\n message,\n build,\n exitOnFirstFailedTask: true,\n });\n\n if (!results) {\n return 'No changes detected, nothing to snap';\n }\n\n const { snappedComponents }: SnapResults = results;\n\n const snapOutput = snapResultOutput(results);\n this.logger.console(snapOutput);\n\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n\n const exportResults = await this.exporter.export();\n\n this.logger.console(chalk.green(`Exported ${exportResults.componentsIds.length} components`));\n } catch (e: any) {\n foundErr = e;\n throw e;\n } finally {\n if (foundErr) {\n this.logger.console(chalk.red(`Found error: ${foundErr.message}`));\n }\n // Whatever happens, switch back to the original lane\n this.logger.console('🔄 Cleanup');\n this.logger.console(chalk.blue(`Switching back to ${originalLane?.name ?? 'main'}`));\n const lane = await this.lanes.getCurrentLane();\n if (!lane) {\n this.logger.console(chalk.yellow('Already on main, no need to switch. Checking out to head'));\n await this.lanes.checkout.checkout({\n head: true,\n skipNpmInstall: true,\n });\n } else {\n await this.switchToLane(originalLane?.name ?? 'main');\n }\n }\n }\n\n async mergePr({\n message: argMessage,\n build,\n strict,\n releaseType,\n preReleaseId,\n incrementBy,\n }: {\n message?: string;\n build?: boolean;\n strict?: boolean;\n releaseType?: ReleaseType;\n preReleaseId?: string;\n incrementBy?: number;\n }) {\n const message = argMessage || (await this.getGitCommitMessage());\n if (!message) {\n throw new Error('Failed to get commit message from git. Please provide a message using --message option.');\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n if (currentLane) {\n // this doesn't normally happen. we expect this mergePr to be called from the default branch, which normally checks\n // out to main lane.\n this.logger.console(chalk.blue(`Currently on lane ${currentLane.name}, switching to main`));\n await this.switchToLane('main');\n this.logger.console(chalk.green('Switched to main lane'));\n }\n\n // Pull latest changes from remote to ensure we have the most up-to-date .bitmap\n // This prevents issues when multiple PRs are merged in sequence\n const defaultBranch = await this.getDefaultBranchName();\n this.logger.console(chalk.blue(`Pulling latest git changes from ${defaultBranch} branch`));\n\n // Check if there are any changes to stash before rebasing\n const gitStatus = await git.status();\n const hasChanges = gitStatus.files.length > 0;\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Stashing uncommitted changes before rebase'));\n await git.stash(['push', '-u', '-m', 'CI merge temporary stash']);\n }\n\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n\n if (hasChanges) {\n this.logger.console(chalk.yellow('Restoring stashed changes after rebase'));\n await git.stash(['pop']);\n }\n\n this.logger.console(chalk.green('Pulled latest git changes'));\n\n this.logger.console('🔄 Checking out to main head');\n await this.importer.importCurrentObjects();\n\n const checkoutProps = {\n ids: this.workspace.listIds(),\n forceOurs: true,\n head: true,\n skipNpmInstall: true,\n };\n const checkoutResults = await this.checkout.checkout(checkoutProps);\n await this.workspace.bitMap.write('checkout head');\n // all: true is to make it less verbose in the output. this workaround will be fixed later.\n this.logger.console(checkoutOutput(checkoutResults, { ...checkoutProps, all: true }));\n\n const { status } = await this.verifyWorkspaceStatusInternal(strict);\n\n const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;\n\n this.logger.console('📦 Component Operations');\n this.logger.console(chalk.blue('Tagging components'));\n const tagResults = await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n releaseType,\n preReleaseId,\n incrementBy,\n });\n\n if (tagResults) {\n const tagOutput = tagResultOutput(tagResults);\n this.logger.console(tagOutput);\n } else {\n this.logger.console(chalk.yellow('No components to tag'));\n }\n\n const hasTaggedComponents = tagResults?.taggedComponents && tagResults.taggedComponents.length > 0;\n\n if (hasTaggedComponents) {\n this.logger.console(chalk.blue('Exporting components'));\n const exportResult = await this.exporter.export();\n\n if (exportResult.componentsIds.length > 0) {\n this.logger.console(chalk.green(`Exported ${exportResult.componentsIds.length} component(s)`));\n } else {\n this.logger.console(chalk.yellow('Nothing to export'));\n }\n\n this.logger.console('🔄 Git Operations');\n // Set user.email and user.name\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n // Commit the .bitmap and pnpm-lock.yaml files using Git\n await git.add(['.bitmap', 'pnpm-lock.yaml']);\n\n const commitMessage = await this.getCustomCommitMessage();\n await git.commit(commitMessage);\n\n // Pull latest changes and push the commit to the remote repository\n // At this point we have just committed changes, so no need to stash\n await git.pull('origin', defaultBranch, { '--rebase': 'true' });\n await git.push('origin', defaultBranch);\n } else {\n this.logger.console(chalk.yellow('No components were tagged, skipping export and git operations'));\n }\n\n this.logger.console(chalk.green('Merged PR'));\n\n if (currentLane) {\n this.logger.console('🗑️ Lane Cleanup');\n const laneId = currentLane.id;\n this.logger.console(chalk.blue(`Archiving lane ${laneId.toString()}`));\n const archiveLane = await this.lanes.removeLanes([laneId()]);\n if (archiveLane) {\n this.logger.console(chalk.green('Lane archived'));\n } else {\n this.logger.console(chalk.yellow('Failed to archive lane'));\n }\n }\n\n return { code: 0, data: '' };\n }\n}\n\n// @ts-ignore\nCiAspect.addRuntime(CiMain);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import type { Command, CommandOptions } from '@teambit/cli';
|
|
2
2
|
import type { Logger } from '@teambit/logger';
|
|
3
3
|
import { type Workspace } from '@teambit/workspace';
|
|
4
|
+
import { ReleaseType } from 'semver';
|
|
4
5
|
import { CiMain } from '../ci.main.runtime';
|
|
5
6
|
type Options = {
|
|
6
7
|
message?: string;
|
|
7
8
|
build?: boolean;
|
|
8
9
|
strict?: boolean;
|
|
10
|
+
increment?: ReleaseType;
|
|
11
|
+
patch?: boolean;
|
|
12
|
+
minor?: boolean;
|
|
13
|
+
major?: boolean;
|
|
14
|
+
preRelease?: string;
|
|
15
|
+
prereleaseId?: string;
|
|
16
|
+
incrementBy?: number;
|
|
9
17
|
};
|
|
10
18
|
export declare class CiMergeCmd implements Command {
|
|
11
19
|
private workspace;
|
|
@@ -11,6 +11,13 @@ function _workspace() {
|
|
|
11
11
|
};
|
|
12
12
|
return data;
|
|
13
13
|
}
|
|
14
|
+
function _snapping() {
|
|
15
|
+
const data = require("@teambit/snapping");
|
|
16
|
+
_snapping = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
14
21
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
15
22
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16
23
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
@@ -22,16 +29,23 @@ class CiMergeCmd {
|
|
|
22
29
|
_defineProperty(this, "name", 'merge');
|
|
23
30
|
_defineProperty(this, "description", 'Merges a PR');
|
|
24
31
|
_defineProperty(this, "group", 'collaborate');
|
|
25
|
-
_defineProperty(this, "options", [['m', 'message <message>', 'If set, use it as the
|
|
32
|
+
_defineProperty(this, "options", [['m', 'message <message>', 'If set, use it as the tag message, if not, try and grab from git-commit-message'], ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'], ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'], ['l', 'increment <level>', 'options are: [major, premajor, minor, preminor, patch, prepatch, prerelease], default to patch'], ['', 'prerelease-id <id>', 'prerelease identifier (e.g. "dev" to get "1.0.0-dev.1")'], ['p', 'patch', 'syntactic sugar for "--increment patch"'], ['', 'minor', 'syntactic sugar for "--increment minor"'], ['', 'major', 'syntactic sugar for "--increment major"'], ['', 'pre-release [identifier]', 'syntactic sugar for "--increment prerelease" and `--prerelease-id <identifier>`'], ['', 'increment-by <number>', '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.']]);
|
|
26
33
|
}
|
|
27
34
|
async report(args, options) {
|
|
28
35
|
this.logger.console('\n\n');
|
|
29
36
|
this.logger.console('🚀 Initializing Merge command');
|
|
30
37
|
if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
|
|
38
|
+
const {
|
|
39
|
+
releaseType,
|
|
40
|
+
preReleaseId
|
|
41
|
+
} = (0, _snapping().validateOptions)(options);
|
|
31
42
|
return this.ci.mergePr({
|
|
32
43
|
message: options.message,
|
|
33
44
|
build: options.build,
|
|
34
|
-
strict: options.strict
|
|
45
|
+
strict: options.strict,
|
|
46
|
+
releaseType,
|
|
47
|
+
preReleaseId,
|
|
48
|
+
incrementBy: options.incrementBy
|
|
35
49
|
});
|
|
36
50
|
}
|
|
37
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMergeCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","mergePr","message","build","strict","exports"],"sources":["merge.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n strict?: boolean;\n};\n\nexport class CiMergeCmd implements Command {\n name = 'merge';\n description = 'Merges a PR';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, use it as the
|
|
1
|
+
{"version":3,"names":["_workspace","data","require","_snapping","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMergeCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","releaseType","preReleaseId","validateOptions","mergePr","message","build","strict","incrementBy","exports"],"sources":["merge.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport { ReleaseType } from 'semver';\nimport { validateOptions } from '@teambit/snapping';\nimport { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n strict?: boolean;\n increment?: ReleaseType;\n patch?: boolean;\n minor?: boolean;\n major?: boolean;\n preRelease?: string;\n prereleaseId?: string;\n incrementBy?: number;\n};\n\nexport class CiMergeCmd implements Command {\n name = 'merge';\n description = 'Merges a PR';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, use it as the tag message, if not, try and grab from git-commit-message'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],\n [\n 'l',\n 'increment <level>',\n 'options are: [major, premajor, minor, preminor, patch, prepatch, prerelease], default to patch',\n ],\n ['', 'prerelease-id <id>', 'prerelease identifier (e.g. \"dev\" to get \"1.0.0-dev.1\")'],\n ['p', 'patch', 'syntactic sugar for \"--increment patch\"'],\n ['', 'minor', 'syntactic sugar for \"--increment minor\"'],\n ['', 'major', 'syntactic sugar for \"--increment major\"'],\n ['', 'pre-release [identifier]', 'syntactic sugar for \"--increment prerelease\" and `--prerelease-id <identifier>`'],\n [\n '',\n 'increment-by <number>',\n '(default to 1) increment semver flag (patch/minor/major) by. e.g. incrementing patch by 2: 0.0.1 -> 0.0.3.',\n ],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing Merge command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n const { releaseType, preReleaseId } = validateOptions(options);\n\n return this.ci.mergePr({\n message: options.message,\n build: options.build,\n strict: options.strict,\n releaseType,\n preReleaseId,\n incrementBy: options.incrementBy,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,9 +17,6 @@ export declare class CiPrCmd implements Command {
|
|
|
17
17
|
group: string;
|
|
18
18
|
options: CommandOptions;
|
|
19
19
|
constructor(workspace: Workspace, logger: Logger, ci: CiMain);
|
|
20
|
-
report(args: unknown, options: Options): Promise<"No changes detected, nothing to snap" |
|
|
21
|
-
code: number;
|
|
22
|
-
data: string;
|
|
23
|
-
} | "PR command executed successfully">;
|
|
20
|
+
report(args: unknown, options: Options): Promise<"No changes detected, nothing to snap" | "PR command executed successfully">;
|
|
24
21
|
}
|
|
25
22
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
;
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@0.0.
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@0.0.16/dist/ci.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [];
|
|
5
5
|
export const overview = [overview_0];
|
package/package.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/ci",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/git/ci",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.git",
|
|
8
8
|
"name": "ci",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.16"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"chalk": "4.1.2",
|
|
13
13
|
"execa": "2.1.0",
|
|
14
|
+
"semver": "7.7.1",
|
|
14
15
|
"simple-git": "^3.28.0",
|
|
15
16
|
"@teambit/harmony": "0.4.7",
|
|
16
17
|
"@teambit/cli": "0.0.1229",
|
|
@@ -22,9 +23,10 @@
|
|
|
22
23
|
"@teambit/importer": "1.0.652",
|
|
23
24
|
"@teambit/lanes": "1.0.653",
|
|
24
25
|
"@teambit/snapping": "1.0.652",
|
|
25
|
-
"@teambit/status": "1.0.
|
|
26
|
+
"@teambit/status": "1.0.654"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
29
|
+
"@types/semver": "7.5.8",
|
|
28
30
|
"@teambit/harmony.envs.core-aspect-env": "0.0.70"
|
|
29
31
|
},
|
|
30
32
|
"peerDependencies": {},
|