@teambit/builder 0.0.1127 → 0.0.1128

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.
@@ -1,6 +1,7 @@
1
1
  import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';
2
2
  import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
3
  import React from 'react';
4
+ import { uniq } from 'lodash';
4
5
  import { ScopeMain } from '@teambit/scope';
5
6
  import pMapSeries from 'p-map-series';
6
7
  import { GlobalConfigMain } from '@teambit/global-config';
@@ -100,9 +101,9 @@ export class BuilderService implements EnvService<BuildServiceResults, string> {
100
101
  );
101
102
  tasksQueue.validate();
102
103
  this.logger.info(`going to run tasks in the following order:\n${tasksQueue.toString()}`);
103
- const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;
104
- const longProcessLogger = this.logger.createLongProcessLogger(title);
105
- this.logger.consoleTitle(title);
104
+ const envsStr = envs.map((env) => env.id).join(', ');
105
+ const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s) (${envsStr}), total ${tasksQueue.length} tasks`;
106
+ const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');
106
107
  const envsBuildContext: EnvsBuildContext = {};
107
108
  const capsulesBaseDir = this.getComponentsCapsulesBaseDir();
108
109
 
@@ -135,17 +136,21 @@ export class BuilderService implements EnvService<BuildServiceResults, string> {
135
136
  });
136
137
  envsBuildContext[executionContext.id] = buildContext;
137
138
  });
139
+ const envIdsWithoutVersion = envs.map((env) => env.id.split('@')[0]);
138
140
  const buildPipe = new BuildPipe(
139
141
  tasksQueue,
140
142
  envsBuildContext,
141
143
  this.logger,
142
144
  this.artifactFactory,
143
145
  options.previousTasksResults,
144
- { exitOnFirstFailedTask: options.exitOnFirstFailedTask }
146
+ {
147
+ exitOnFirstFailedTask: options.exitOnFirstFailedTask,
148
+ showEnvNameInOutput: envs.length > 1,
149
+ showEnvVersionInOutput: envIdsWithoutVersion.length > uniq(envIdsWithoutVersion).length,
150
+ }
145
151
  );
146
152
  const buildResults = await buildPipe.execute();
147
- longProcessLogger.end();
148
- buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();
153
+ longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');
149
154
 
150
155
  return buildResults;
151
156
  }
@@ -36,6 +36,8 @@ export declare type TaskResults = {
36
36
  };
37
37
  declare type PipeOptions = {
38
38
  exitOnFirstFailedTask?: boolean;
39
+ showEnvNameInOutput?: boolean;
40
+ showEnvVersionInOutput?: boolean;
39
41
  };
40
42
  export declare class BuildPipe {
41
43
  /**
@@ -67,6 +69,8 @@ export declare class BuildPipe {
67
69
  private addSignalListener;
68
70
  private executePreBuild;
69
71
  private executeTask;
72
+ private getPrettyAspectName;
73
+ private getPrettyEnvName;
70
74
  private executePostBuild;
71
75
  private updateFailedDependencyTask;
72
76
  private shouldSkipTask;
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  require("core-js/modules/es.symbol.description.js");
5
5
  require("core-js/modules/es.array.iterator.js");
6
6
  require("core-js/modules/es.promise.js");
7
+ require("core-js/modules/es.regexp.exec.js");
7
8
  Object.defineProperty(exports, "__esModule", {
8
9
  value: true
9
10
  });
@@ -15,6 +16,13 @@ function _defineProperty2() {
15
16
  };
16
17
  return data;
17
18
  }
19
+ function _component() {
20
+ const data = require("@teambit/component");
21
+ _component = function () {
22
+ return data;
23
+ };
24
+ return data;
25
+ }
18
26
  function _pMapSeries() {
19
27
  const data = _interopRequireDefault(require("p-map-series"));
20
28
  _pMapSeries = function () {
@@ -29,6 +37,20 @@ function _prettyTime() {
29
37
  };
30
38
  return data;
31
39
  }
40
+ function _toolboxString() {
41
+ const data = require("@teambit/toolbox.string.capitalize");
42
+ _toolboxString = function () {
43
+ return data;
44
+ };
45
+ return data;
46
+ }
47
+ function _chalk() {
48
+ const data = _interopRequireDefault(require("chalk"));
49
+ _chalk = function () {
50
+ return data;
51
+ };
52
+ return data;
53
+ }
32
54
  function _buildTask() {
33
55
  const data = require("./build-task");
34
56
  _buildTask = function () {
@@ -94,6 +116,7 @@ class BuildPipe {
94
116
  }
95
117
  async executePreBuild() {
96
118
  this.logger.setStatusLine('executing pre-build for all tasks');
119
+ const longProcessLogger = this.logger.createLongProcessLogger('running pre-build for all tasks');
97
120
  await (0, _pMapSeries().default)(this.tasksQueue, async ({
98
121
  task,
99
122
  env
@@ -101,12 +124,14 @@ class BuildPipe {
101
124
  if (!task.preBuild) return;
102
125
  await task.preBuild(this.getBuildContext(env.id));
103
126
  });
104
- this.logger.consoleSuccess();
127
+ longProcessLogger.end();
105
128
  }
106
129
  async executeTask(task, env) {
130
+ var _this$options;
107
131
  const taskId = _buildTask().BuildTaskHelper.serializeId(task);
108
- const taskName = `${taskId}${task.description ? ` (${task.description})` : ''}`;
109
- this.longProcessLogger.logProgress(`env "${env.id}", task "${taskName}"`);
132
+ const envName = (_this$options = this.options) !== null && _this$options !== void 0 && _this$options.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';
133
+ const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;
134
+ this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);
110
135
  this.updateFailedDependencyTask(task);
111
136
  if (this.shouldSkipTask(taskId, env.id)) {
112
137
  return;
@@ -127,12 +152,13 @@ class BuildPipe {
127
152
  return (_c$errors = c.errors) === null || _c$errors === void 0 ? void 0 : _c$errors.length;
128
153
  });
129
154
  let artifacts;
155
+ const duration = (0, _prettyTime().default)(process.hrtime(startTask));
130
156
  if (compsWithErrors.length) {
131
157
  this.logger.consoleFailure(`env: ${env.id}, task "${taskId}" has failed`);
158
+ this.logger.consoleFailure(_chalk().default.red(`${this.longProcessLogger.getProgress()} env: ${env.id}, task "${taskId}" has failed in ${duration}`));
132
159
  this.failedTasks.push(task);
133
160
  } else {
134
- const duration = (0, _prettyTime().default)(process.hrtime(startTask));
135
- this.logger.consoleSuccess(`env "${env.id}", task "${taskName}" has completed successfully in ${duration}`);
161
+ this.logger.consoleSuccess(_chalk().default.green(`${this.longProcessLogger.getProgress()} ${taskLogPrefix} Completed successfully in ${duration}`));
136
162
  const defs = buildTaskResult.artifacts || [];
137
163
  artifacts = this.artifactFactory.generate(buildContext, defs, task);
138
164
  }
@@ -146,7 +172,19 @@ class BuildPipe {
146
172
  };
147
173
  this.taskResults.push(taskResults);
148
174
  }
175
+ getPrettyAspectName(aspectId) {
176
+ const resolvedId = _component().ComponentID.fromString(aspectId);
177
+ const tokens = resolvedId.name.split('-').map(token => (0, _toolboxString().capitalize)(token));
178
+ return tokens.join(' ');
179
+ }
180
+ getPrettyEnvName(envId) {
181
+ var _this$options2;
182
+ const resolvedId = _component().ComponentID.fromString(envId);
183
+ const ver = (_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.showEnvVersionInOutput ? `@${resolvedId.version}` : '';
184
+ return `${resolvedId.fullName}${ver}`;
185
+ }
149
186
  async executePostBuild(tasksResults) {
187
+ const longProcessLogger = this.logger.createLongProcessLogger('running post-build for all tasks');
150
188
  this.logger.setStatusLine('executing post-build for all tasks');
151
189
  await (0, _pMapSeries().default)(this.tasksQueue, async ({
152
190
  task,
@@ -155,7 +193,7 @@ class BuildPipe {
155
193
  if (!task.postBuild) return;
156
194
  await task.postBuild(this.getBuildContext(env.id), tasksResults);
157
195
  });
158
- this.logger.consoleSuccess();
196
+ longProcessLogger.end();
159
197
  }
160
198
  updateFailedDependencyTask(task) {
161
199
  if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {
@@ -172,8 +210,8 @@ class BuildPipe {
172
210
  }
173
211
  }
174
212
  shouldSkipTask(taskId, envId) {
175
- var _this$options;
176
- if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.exitOnFirstFailedTask && this.failedTasks.length) {
213
+ var _this$options3;
214
+ if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.exitOnFirstFailedTask && this.failedTasks.length) {
177
215
  const failedTaskId = _buildTask().BuildTaskHelper.serializeId(this.failedTasks[0]);
178
216
  this.logger.consoleWarning(`env: ${envId}, task "${taskId}" has skipped due to "${failedTaskId}" failure`);
179
217
  return true;
@@ -1 +1 @@
1
- {"version":3,"names":["_pMapSeries","data","_interopRequireDefault","require","_prettyTime","_buildTask","_taskResultsList","BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","options","_defineProperty2","default","allTasksResults","taskResults","execute","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","consoleSuccess","taskId","BuildTaskHelper","serializeId","taskName","description","logProgress","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","_c$errors","errors","artifacts","failedTasks","push","duration","prettyTime","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeIdAllowEmptyName","find","failedTask","envId","_this$options","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults","exports"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { ArtifactFactory, ArtifactList, FsArtifact } from './artifact';\nimport { BuildContext, BuildTask, BuildTaskHelper, BuiltTaskResult } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\ntype PipeOptions = {\n exitOnFirstFailedTask?: boolean; // by default it skips only when a dependent failed.\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[],\n private options?: PipeOptions\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n this.logger.consoleSuccess();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const taskName = `${taskId}${task.description ? ` (${task.description})` : ''}`;\n this.longProcessLogger.logProgress(`env \"${env.id}\", task \"${taskName}\"`);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.failedTasks.push(task);\n } else {\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`env \"${env.id}\", task \"${taskName}\" has completed successfully in ${duration}`);\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n this.logger.consoleSuccess();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {\n const failedTaskId = BuildTaskHelper.serializeId(this.failedTasks[0]);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string): BuildContext {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.allTasksResults;\n return buildContext;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_prettyTime","_toolboxString","_chalk","_buildTask","_taskResultsList","BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","options","_defineProperty2","default","allTasksResults","taskResults","execute","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","_this$options","taskId","BuildTaskHelper","serializeId","envName","showEnvNameInOutput","getPrettyEnvName","taskLogPrefix","getPrettyAspectName","aspectId","name","logProgress","description","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","_c$errors","errors","artifacts","duration","prettyTime","chalk","red","getProgress","failedTasks","push","consoleSuccess","green","defs","generate","startTime","resolvedId","ComponentID","fromString","tokens","split","map","token","capitalize","join","envId","_this$options2","ver","showEnvVersionInOutput","version","fullName","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","deserializeIdAllowEmptyName","find","failedTask","_this$options3","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults","exports"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap, ComponentID } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport chalk from 'chalk';\nimport { ArtifactFactory, ArtifactList, FsArtifact } from './artifact';\nimport { BuildContext, BuildTask, BuildTaskHelper, BuiltTaskResult } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\ntype PipeOptions = {\n exitOnFirstFailedTask?: boolean; // by default it skips only when a dependent failed.\n showEnvNameInOutput?: boolean;\n showEnvVersionInOutput?: boolean; // in case it shows the env-name, whether should show also the version\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[],\n private options?: PipeOptions\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n const longProcessLogger = this.logger.createLongProcessLogger('running pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n longProcessLogger.end();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const envName = this.options?.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';\n const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;\n this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n const duration = prettyTime(process.hrtime(startTask));\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.logger.consoleFailure(\n chalk.red(`${this.longProcessLogger.getProgress()} env: ${env.id}, task \"${taskId}\" has failed in ${duration}`)\n );\n this.failedTasks.push(task);\n } else {\n this.logger.consoleSuccess(\n chalk.green(`${this.longProcessLogger.getProgress()} ${taskLogPrefix} Completed successfully in ${duration}`)\n );\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private getPrettyAspectName(aspectId: string): string {\n const resolvedId = ComponentID.fromString(aspectId);\n const tokens = resolvedId.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n private getPrettyEnvName(envId: string) {\n const resolvedId = ComponentID.fromString(envId);\n const ver = this.options?.showEnvVersionInOutput ? `@${resolvedId.version}` : '';\n return `${resolvedId.fullName}${ver}`;\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n const longProcessLogger = this.logger.createLongProcessLogger('running post-build for all tasks');\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n longProcessLogger.end();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {\n const failedTaskId = BuildTaskHelper.serializeId(this.failedTasks[0]);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string): BuildContext {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.allTasksResults;\n return buildContext;\n }\n}\n"],"mappings":"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"}
package/dist/build.cmd.js CHANGED
@@ -97,9 +97,8 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
97
97
  skipTests,
98
98
  exitOnFirstFailedTask: failFast
99
99
  });
100
- longProcessLogger.end();
100
+ longProcessLogger.end(envsExecutionResults.hasErrors() ? 'error' : 'success');
101
101
  envsExecutionResults.throwErrorsIfExist();
102
- this.logger.consoleSuccess();
103
102
  return _chalk().default.green(`the build has been completed. total: ${envsExecutionResults.tasksQueue.length} tasks`);
104
103
  }
105
104
  async getListTasks(componentIdStr) {
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_constants","_chalk","_interopRequireDefault","BuilderCmd","constructor","builder","workspace","logger","_defineProperty2","default","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","tasks","listTasks","skipTests","failFast","OutsideWorkspaceError","consoleWarning","getListTasks","longProcessLogger","createLongProcessLogger","components","getComponentsByUserInput","length","chalk","bold","consoleSuccess","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","end","throwErrorsIfExist","green","tasksQueue","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\n\ntype BuildOpts = {\n all: boolean; // deprecated. use unmodified\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n helpUrl = 'reference/build-pipeline/builder-overview';\n alias = '';\n group = 'development';\n options = [\n ['a', 'all', 'DEPRECATED. use --unmodified'],\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'],\n ['d', 'dev', 'run the pipeline in dev mode'],\n ['', 'install', 'install core aspects in capsules'],\n ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'],\n [\n '',\n 'tasks <string>',\n `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.\nspecify the task-name (e.g. \"TypescriptCompiler\") or the task-aspect-id (e.g. teambit.compilation/compiler)`,\n ],\n ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'],\n [\n '',\n 'list-tasks <string>',\n 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap',\n ],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n ] as CommandOptions;\n\n constructor(private builder: BuilderMain, private workspace: Workspace, private logger: Logger) {}\n\n async report(\n [pattern]: [string],\n {\n all = false,\n unmodified = false,\n dev = false,\n install = false,\n cachePackagesOnCapsulesRoot = false,\n reuseCapsules = false,\n tasks,\n listTasks,\n skipTests,\n failFast,\n }: BuildOpts\n ): Promise<string> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (all) {\n this.logger.consoleWarning(`--all is deprecated, please use --unmodified instead`);\n unmodified = true;\n }\n if (listTasks) {\n return this.getListTasks(listTasks);\n }\n\n const longProcessLogger = this.logger.createLongProcessLogger('build');\n const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);\n if (!components.length) {\n return chalk.bold(\n `no components found to build. use \"--unmodified\" flag to build all components or specify the ids to build, otherwise, only new and modified components will be built`\n );\n }\n this.logger.consoleSuccess(`found ${components.length} components to build`);\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n }\n );\n longProcessLogger.end();\n envsExecutionResults.throwErrorsIfExist();\n this.logger.consoleSuccess();\n return chalk.green(`the build has been completed. total: ${envsExecutionResults.tasksQueue.length} tasks`);\n }\n\n private async getListTasks(componentIdStr: string): Promise<string> {\n const compId = await this.workspace.resolveComponentId(componentIdStr);\n const component = await this.workspace.get(compId);\n const results = this.builder.listTasks(component);\n return `${chalk.green('Tasks List')}\nid: ${results.id.toString()}\nenvId: ${results.envId}\n\n${chalk.bold('Build Pipeline Tasks:')}\n${results.buildTasks.join('\\n')}\n\n${chalk.bold('Tag Pipeline Tasks:')}\n${results.tagTasks.join('\\n')}\n\n${chalk.bold('Snap Pipeline Tasks:')}\n${results.snapTasks.join('\\n') || '<N/A>'}`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_workspace","data","require","_constants","_chalk","_interopRequireDefault","BuilderCmd","constructor","builder","workspace","logger","_defineProperty2","default","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","tasks","listTasks","skipTests","failFast","OutsideWorkspaceError","consoleWarning","getListTasks","longProcessLogger","createLongProcessLogger","components","getComponentsByUserInput","length","chalk","bold","consoleSuccess","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","end","hasErrors","throwErrorsIfExist","green","tasksQueue","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\n\ntype BuildOpts = {\n all: boolean; // deprecated. use unmodified\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n helpUrl = 'reference/build-pipeline/builder-overview';\n alias = '';\n group = 'development';\n options = [\n ['a', 'all', 'DEPRECATED. use --unmodified'],\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'],\n ['d', 'dev', 'run the pipeline in dev mode'],\n ['', 'install', 'install core aspects in capsules'],\n ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'],\n [\n '',\n 'tasks <string>',\n `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.\nspecify the task-name (e.g. \"TypescriptCompiler\") or the task-aspect-id (e.g. teambit.compilation/compiler)`,\n ],\n ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'],\n [\n '',\n 'list-tasks <string>',\n 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap',\n ],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n ] as CommandOptions;\n\n constructor(private builder: BuilderMain, private workspace: Workspace, private logger: Logger) {}\n\n async report(\n [pattern]: [string],\n {\n all = false,\n unmodified = false,\n dev = false,\n install = false,\n cachePackagesOnCapsulesRoot = false,\n reuseCapsules = false,\n tasks,\n listTasks,\n skipTests,\n failFast,\n }: BuildOpts\n ): Promise<string> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (all) {\n this.logger.consoleWarning(`--all is deprecated, please use --unmodified instead`);\n unmodified = true;\n }\n if (listTasks) {\n return this.getListTasks(listTasks);\n }\n\n const longProcessLogger = this.logger.createLongProcessLogger('build');\n const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);\n if (!components.length) {\n return chalk.bold(\n `no components found to build. use \"--unmodified\" flag to build all components or specify the ids to build, otherwise, only new and modified components will be built`\n );\n }\n this.logger.consoleSuccess(`found ${components.length} components to build`);\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n }\n );\n longProcessLogger.end(envsExecutionResults.hasErrors() ? 'error' : 'success');\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(`the build has been completed. total: ${envsExecutionResults.tasksQueue.length} tasks`);\n }\n\n private async getListTasks(componentIdStr: string): Promise<string> {\n const compId = await this.workspace.resolveComponentId(componentIdStr);\n const component = await this.workspace.get(compId);\n const results = this.builder.listTasks(component);\n return `${chalk.green('Tasks List')}\nid: ${results.id.toString()}\nenvId: ${results.envId}\n\n${chalk.bold('Build Pipeline Tasks:')}\n${results.buildTasks.join('\\n')}\n\n${chalk.bold('Tag Pipeline Tasks:')}\n${results.tagTasks.join('\\n')}\n\n${chalk.bold('Snap Pipeline Tasks:')}\n${results.snapTasks.join('\\n') || '<N/A>'}`;\n }\n}\n"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  require("core-js/modules/es.promise.js");
5
+ require("core-js/modules/es.regexp.exec.js");
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
@@ -27,6 +28,13 @@ function _react() {
27
28
  };
28
29
  return data;
29
30
  }
31
+ function _lodash() {
32
+ const data = require("lodash");
33
+ _lodash = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
30
38
  function _pMapSeries() {
31
39
  const data = _interopRequireDefault(require("p-map-series"));
32
40
  _pMapSeries = function () {
@@ -115,9 +123,9 @@ class BuilderService {
115
123
  const tasksQueue = (0, _buildPipelineOrder().calculatePipelineOrder)(this.taskSlot, envs, this.pipeNameOnEnv, options.tasks, options.skipTests);
116
124
  tasksQueue.validate();
117
125
  this.logger.info(`going to run tasks in the following order:\n${tasksQueue.toString()}`);
118
- const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;
119
- const longProcessLogger = this.logger.createLongProcessLogger(title);
120
- this.logger.consoleTitle(title);
126
+ const envsStr = envs.map(env => env.id).join(', ');
127
+ const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s) (${envsStr}), total ${tasksQueue.length} tasks`;
128
+ const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');
121
129
  const envsBuildContext = {};
122
130
  const capsulesBaseDir = this.getComponentsCapsulesBaseDir();
123
131
  const baseDir = options.capsulesBaseDir || capsulesBaseDir;
@@ -146,12 +154,14 @@ class BuilderService {
146
154
  });
147
155
  envsBuildContext[executionContext.id] = buildContext;
148
156
  });
157
+ const envIdsWithoutVersion = envs.map(env => env.id.split('@')[0]);
149
158
  const buildPipe = new (_buildPipe().BuildPipe)(tasksQueue, envsBuildContext, this.logger, this.artifactFactory, options.previousTasksResults, {
150
- exitOnFirstFailedTask: options.exitOnFirstFailedTask
159
+ exitOnFirstFailedTask: options.exitOnFirstFailedTask,
160
+ showEnvNameInOutput: envs.length > 1,
161
+ showEnvVersionInOutput: envIdsWithoutVersion.length > (0, _lodash().uniq)(envIdsWithoutVersion).length
151
162
  });
152
163
  const buildResults = await buildPipe.execute();
153
- longProcessLogger.end();
154
- buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();
164
+ longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');
155
165
  return buildResults;
156
166
  }
157
167
  getComponentsCapsulesBaseDir() {
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","data","require","_react","_interopRequireDefault","_pMapSeries","_ink","_buildPipe","_buildTask","_buildPipelineOrder","_builder","pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","globalConfig","_defineProperty2","default","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","capsulesBaseDir","getComponentsCapsulesBaseDir","baseDir","useHash","isolateOptions","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","exitOnFirstFailedTask","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","render","descriptor","getDescriptor","createElement","Text","key","BuilderAspect","Newline","transform","env","envContext","build","undefined","pipeline","compute","tag","snap","getTasksNamesByPipeFunc","pipeFuncName","task","BuildTaskHelper","serializeId","getCurrentPipeTasks","exports"],"sources":["builder.service.tsx"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\nexport type PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, string> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain,\n private globalConfig: GlobalConfigMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n\n const baseDir = options.capsulesBaseDir || capsulesBaseDir;\n const useHash = !baseDir;\n const isolateOptions = {\n baseDir,\n useHash,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n { exitOnFirstFailedTask: options.exitOnFirstFailedTask }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n render() {\n const descriptor = this.getDescriptor();\n\n return (\n <Text key={BuilderAspect.id}>\n {descriptor}\n <Newline />\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n getDescriptor() {\n return 'run `bit build --list-tasks <component-id>` to see the tasks list for the pipelines: build, tag and snap';\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","data","require","_react","_interopRequireDefault","_lodash","_pMapSeries","_ink","_buildPipe","_buildTask","_buildPipelineOrder","_builder","pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","globalConfig","_defineProperty2","default","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","envsStr","env","id","join","title","length","longProcessLogger","createLongProcessLogger","undefined","envsBuildContext","capsulesBaseDir","getComponentsCapsulesBaseDir","baseDir","useHash","isolateOptions","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","envIdsWithoutVersion","split","buildPipe","BuildPipe","exitOnFirstFailedTask","showEnvNameInOutput","showEnvVersionInOutput","uniq","buildResults","execute","end","hasErrors","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","render","descriptor","getDescriptor","createElement","Text","key","BuilderAspect","Newline","transform","envContext","build","pipeline","compute","tag","snap","getTasksNamesByPipeFunc","pipeFuncName","task","BuildTaskHelper","serializeId","getCurrentPipeTasks","exports"],"sources":["builder.service.tsx"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { uniq } from 'lodash';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\nexport type PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, string> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain,\n private globalConfig: GlobalConfigMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const envsStr = envs.map((env) => env.id).join(', ');\n const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s) (${envsStr}), total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');\n const envsBuildContext: EnvsBuildContext = {};\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n\n const baseDir = options.capsulesBaseDir || capsulesBaseDir;\n const useHash = !baseDir;\n const isolateOptions = {\n baseDir,\n useHash,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const envIdsWithoutVersion = envs.map((env) => env.id.split('@')[0]);\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n {\n exitOnFirstFailedTask: options.exitOnFirstFailedTask,\n showEnvNameInOutput: envs.length > 1,\n showEnvVersionInOutput: envIdsWithoutVersion.length > uniq(envIdsWithoutVersion).length,\n }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');\n\n return buildResults;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n render() {\n const descriptor = this.getDescriptor();\n\n return (\n <Text key={BuilderAspect.id}>\n {descriptor}\n <Newline />\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n getDescriptor() {\n return 'run `bit build --list-tasks <component-id>` to see the tasks list for the pipelines: build, tag and snap';\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1127/dist/builder.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1127/dist/builder.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1128/dist/builder.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1128/dist/builder.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@teambit/builder",
3
- "version": "0.0.1127",
3
+ "version": "0.0.1128",
4
4
  "homepage": "https://bit.cloud/teambit/pipelines/builder",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.pipelines",
8
8
  "name": "builder",
9
- "version": "0.0.1127"
9
+ "version": "0.0.1128"
10
10
  },
11
11
  "dependencies": {
12
+ "chalk": "2.4.2",
12
13
  "p-map-series": "2.1.0",
13
14
  "pretty-time": "1.1.0",
14
15
  "lodash": "4.17.21",
15
- "chalk": "2.4.2",
16
16
  "graphql-tag": "2.12.1",
17
17
  "is-binary-path": "2.1.0",
18
18
  "archiver": "5.3.1",
@@ -27,22 +27,23 @@
27
27
  "@teambit/graph.cleargraph": "0.0.1",
28
28
  "@teambit/harmony": "0.4.6",
29
29
  "@teambit/component-id": "0.0.427",
30
- "@teambit/component": "0.0.1127",
31
- "@teambit/envs": "0.0.1127",
32
- "@teambit/logger": "0.0.846",
33
- "@teambit/tester": "0.0.1127",
34
- "@teambit/isolator": "0.0.1127",
35
- "@teambit/lane-id": "0.0.268",
36
- "@teambit/cli": "0.0.753",
37
- "@teambit/workspace": "0.0.1127",
38
- "@teambit/aspect-loader": "0.0.1127",
39
- "@teambit/aspect": "0.0.1127",
40
- "@teambit/generator": "0.0.1127",
41
- "@teambit/global-config": "0.0.755",
42
- "@teambit/graphql": "0.0.1127",
43
- "@teambit/scope": "0.0.1127",
44
- "@teambit/ui": "0.0.1127",
45
- "@teambit/express": "0.0.851",
30
+ "@teambit/component": "0.0.1128",
31
+ "@teambit/envs": "0.0.1128",
32
+ "@teambit/logger": "0.0.847",
33
+ "@teambit/toolbox.string.capitalize": "0.0.490",
34
+ "@teambit/tester": "0.0.1128",
35
+ "@teambit/isolator": "0.0.1128",
36
+ "@teambit/lane-id": "0.0.269",
37
+ "@teambit/cli": "0.0.754",
38
+ "@teambit/workspace": "0.0.1128",
39
+ "@teambit/aspect-loader": "0.0.1128",
40
+ "@teambit/aspect": "0.0.1128",
41
+ "@teambit/generator": "0.0.1128",
42
+ "@teambit/global-config": "0.0.756",
43
+ "@teambit/graphql": "0.0.1128",
44
+ "@teambit/scope": "0.0.1128",
45
+ "@teambit/ui": "0.0.1128",
46
+ "@teambit/express": "0.0.852",
46
47
  "@teambit/bit-error": "0.0.402"
47
48
  },
48
49
  "devDependencies": {
@@ -60,7 +61,7 @@
60
61
  "@teambit/pipelines.aspect-docs.builder": "0.0.154"
61
62
  },
62
63
  "peerDependencies": {
63
- "@teambit/legacy": "1.0.535",
64
+ "@teambit/legacy": "1.0.536",
64
65
  "react": "^16.8.0 || ^17.0.0",
65
66
  "react-dom": "^16.8.0 || ^17.0.0"
66
67
  },