@teambit/builder 0.0.1061 → 0.0.1063

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.
@@ -28,6 +28,7 @@ export type BuilderServiceOptions = {
28
28
  skipTests?: boolean;
29
29
  previousTasksResults?: TaskResults[];
30
30
  dev?: boolean;
31
+ exitOnFirstFailedTask?: boolean;
31
32
  };
32
33
 
33
34
  type BuilderTransformationMap = ServiceTransformationMap & {
@@ -127,7 +128,8 @@ export class BuilderService implements EnvService<BuildServiceResults, BuilderDe
127
128
  envsBuildContext,
128
129
  this.logger,
129
130
  this.artifactFactory,
130
- options.previousTasksResults
131
+ options.previousTasksResults,
132
+ { exitOnFirstFailedTask: options.exitOnFirstFailedTask }
131
133
  );
132
134
  const buildResults = await buildPipe.execute();
133
135
  longProcessLogger.end();
@@ -34,6 +34,9 @@ export declare type TaskResults = {
34
34
  */
35
35
  endTime: number;
36
36
  };
37
+ declare type PipeOptions = {
38
+ exitOnFirstFailedTask?: boolean;
39
+ };
37
40
  export declare class BuildPipe {
38
41
  /**
39
42
  * array of services to apply on the components.
@@ -43,6 +46,7 @@ export declare class BuildPipe {
43
46
  readonly logger: Logger;
44
47
  readonly artifactFactory: ArtifactFactory;
45
48
  private previousTaskResults?;
49
+ private options?;
46
50
  private failedTasks;
47
51
  private failedDependencyTask;
48
52
  private longProcessLogger;
@@ -51,7 +55,7 @@ export declare class BuildPipe {
51
55
  /**
52
56
  * array of services to apply on the components.
53
57
  */
54
- tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory, previousTaskResults?: TaskResults[] | undefined);
58
+ tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory, previousTaskResults?: TaskResults[] | undefined, options?: PipeOptions | undefined);
55
59
  get allTasksResults(): TaskResults[];
56
60
  /**
57
61
  * execute a pipeline of build tasks.
@@ -68,3 +72,4 @@ export declare class BuildPipe {
68
72
  private shouldSkipTask;
69
73
  private getBuildContext;
70
74
  }
75
+ export {};
@@ -48,12 +48,13 @@ class BuildPipe {
48
48
  /**
49
49
  * array of services to apply on the components.
50
50
  */
51
- tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults) {
51
+ tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults, options) {
52
52
  this.tasksQueue = tasksQueue;
53
53
  this.envsBuildContext = envsBuildContext;
54
54
  this.logger = logger;
55
55
  this.artifactFactory = artifactFactory;
56
56
  this.previousTaskResults = previousTaskResults;
57
+ this.options = options;
57
58
  (0, _defineProperty2().default)(this, "failedTasks", []);
58
59
  (0, _defineProperty2().default)(this, "failedDependencyTask", void 0);
59
60
  (0, _defineProperty2().default)(this, "longProcessLogger", void 0);
@@ -171,6 +172,12 @@ class BuildPipe {
171
172
  }
172
173
  }
173
174
  shouldSkipTask(taskId, envId) {
175
+ var _this$options;
176
+ if ((_this$options = this.options) !== null && _this$options !== void 0 && _this$options.exitOnFirstFailedTask && this.failedTasks.length) {
177
+ const failedTaskId = _buildTask().BuildTaskHelper.serializeId(this.failedTasks[0]);
178
+ this.logger.consoleWarning(`env: ${envId}, task "${taskId}" has skipped due to "${failedTaskId}" failure`);
179
+ return true;
180
+ }
174
181
  if (!this.failedDependencyTask) return false;
175
182
  const failedTaskId = _buildTask().BuildTaskHelper.serializeId(this.failedDependencyTask);
176
183
  this.logger.consoleWarning(`env: ${envId}, task "${taskId}" has skipped due to "${failedTaskId}" failure`);
@@ -1 +1 @@
1
- {"version":3,"names":["BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","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","errors","artifacts","failedTasks","push","duration","prettyTime","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeIdAllowEmptyName","find","failedTask","envId","failedTaskId","consoleWarning","Error","previousTasksResults"],"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\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 ) {}\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.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":["BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","options","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","errors","artifacts","failedTasks","push","duration","prettyTime","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeIdAllowEmptyName","find","failedTask","envId","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults"],"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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"}
@@ -13,6 +13,7 @@ declare type BuildOpts = {
13
13
  tasks: string;
14
14
  listTasks?: string;
15
15
  skipTests?: boolean;
16
+ failFast?: boolean;
16
17
  };
17
18
  export declare class BuilderCmd implements Command {
18
19
  private builder;
@@ -29,7 +30,7 @@ export declare class BuilderCmd implements Command {
29
30
  group: string;
30
31
  options: CommandOptions;
31
32
  constructor(builder: BuilderMain, workspace: Workspace, logger: Logger);
32
- report([pattern]: [string], { all, unmodified, dev, install, cachePackagesOnCapsulesRoot, reuseCapsules, tasks, listTasks, skipTests, }: BuildOpts): Promise<string>;
33
+ report([pattern]: [string], { all, unmodified, dev, install, cachePackagesOnCapsulesRoot, reuseCapsules, tasks, listTasks, skipTests, failFast, }: BuildOpts): Promise<string>;
33
34
  private getListTasks;
34
35
  }
35
36
  export {};
package/dist/build.cmd.js CHANGED
@@ -52,7 +52,7 @@ class BuilderCmd {
52
52
  (0, _defineProperty2().default)(this, "alias", '');
53
53
  (0, _defineProperty2().default)(this, "group", 'development');
54
54
  (0, _defineProperty2().default)(this, "options", [['a', 'all', 'DEPRECATED. use --unmodified'], ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'], ['d', 'dev', 'run the pipeline in dev mode'], ['', 'install', 'install core aspects in capsules'], ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'], ['', 'tasks <string>', `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.
55
- specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. teambit.compilation/compiler)`], ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'], ['', 'list-tasks <string>', 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap'], ['', 'skip-tests', 'skip running component tests during tag process']]);
55
+ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. teambit.compilation/compiler)`], ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'], ['', 'list-tasks <string>', 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap'], ['', 'skip-tests', 'skip running component tests during tag process'], ['', 'fail-fast', 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)']]);
56
56
  }
57
57
  async report([pattern], {
58
58
  all = false,
@@ -63,7 +63,8 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
63
63
  reuseCapsules = false,
64
64
  tasks,
65
65
  listTasks,
66
- skipTests
66
+ skipTests,
67
+ failFast
67
68
  }) {
68
69
  if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
69
70
  if (all) {
@@ -93,7 +94,8 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
93
94
  }, {
94
95
  dev,
95
96
  tasks: tasks ? tasks.split(',').map(task => task.trim()) : [],
96
- skipTests
97
+ skipTests,
98
+ exitOnFirstFailedTask: failFast
97
99
  });
98
100
  longProcessLogger.end();
99
101
  envsExecutionResults.throwErrorsIfExist();
@@ -1 +1 @@
1
- {"version":3,"names":["BuilderCmd","constructor","builder","workspace","logger","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","tasks","listTasks","skipTests","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","end","throwErrorsIfExist","green","tasksQueue","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks"],"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};\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 ] 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 }: 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 }\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":["BuilderCmd","constructor","builder","workspace","logger","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"],"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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"}
@@ -15,7 +15,6 @@ import { UiMain } from '@teambit/ui';
15
15
  import { Artifact, ArtifactList } from './artifact';
16
16
  import { BuilderService, BuilderServiceOptions } from './builder.service';
17
17
  import { BuildTask } from './build-task';
18
- import { TaskResults } from './build-pipe';
19
18
  import { TaskResultsList } from './task-results-list';
20
19
  import { AspectData, PipelineReport } from './build-pipeline-result-list';
21
20
  import { Serializable } from './types';
@@ -30,7 +29,6 @@ export declare type OnTagOpts = {
30
29
  forceDeploy?: boolean;
31
30
  skipBuildPipeline?: boolean;
32
31
  combineBuildDataFromParent?: boolean;
33
- skipTests?: boolean;
34
32
  isSnap?: boolean;
35
33
  };
36
34
  export declare const FILE_PATH_PARAM_DELIM = "~";
@@ -65,7 +63,7 @@ export declare class BuilderMain {
65
63
  constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot);
66
64
  private storeArtifacts;
67
65
  private pipelineResultsToBuilderData;
68
- tagListener(components: Component[], options?: OnTagOpts, isolateOptions?: IsolateComponentsOptions): Promise<OnTagResults>;
66
+ tagListener(components: Component[], options?: OnTagOpts, isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<OnTagResults>;
69
67
  private validateBuilderDataMap;
70
68
  private combineBuildDataFromParent;
71
69
  getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]>;
@@ -79,8 +77,8 @@ export declare class BuilderMain {
79
77
  getArtifacts(component: IComponent): ArtifactList<Artifact>;
80
78
  getBuilderData(component: IComponent): BuilderData | undefined;
81
79
  build(components: Component[], isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<TaskResultsList>;
82
- runTagTasks(components: Component[], isolateOptions?: IsolateComponentsOptions, previousTasksResults?: TaskResults[]): Promise<TaskResultsList>;
83
- runSnapTasks(components: Component[], isolateOptions?: IsolateComponentsOptions, previousTasksResults?: TaskResults[]): Promise<TaskResultsList>;
80
+ runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList>;
81
+ runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList>;
84
82
  listTasks(component: Component): {
85
83
  id: ComponentID;
86
84
  envId: string;
@@ -269,7 +269,7 @@ class BuilderMain {
269
269
  };
270
270
  });
271
271
  }
272
- async tagListener(components, options = {}, isolateOptions = {}) {
272
+ async tagListener(components, options = {}, isolateOptions = {}, builderOptions = {}) {
273
273
  const pipeResults = [];
274
274
  const allTasksResults = [];
275
275
  const {
@@ -282,16 +282,19 @@ class BuilderMain {
282
282
  if (options.skipBuildPipeline) isolateOptions.populateArtifactsFromParent = true;
283
283
  const buildEnvsExecutionResults = await this.build(components, _objectSpread({
284
284
  emptyRootDir: true
285
- }, isolateOptions), {
286
- skipTests: options.skipTests,
285
+ }, isolateOptions), _objectSpread(_objectSpread({}, builderOptions), {}, {
287
286
  // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed
288
287
  tasks: skipBuildPipeline ? [_aspect().default.id] : undefined
289
- });
288
+ }));
290
289
  if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();
291
290
  allTasksResults.push(...buildEnvsExecutionResults.tasksResults);
292
291
  pipeResults.push(buildEnvsExecutionResults);
293
292
  if (forceDeploy || !disableTagAndSnapPipelines && !(buildEnvsExecutionResults !== null && buildEnvsExecutionResults !== void 0 && buildEnvsExecutionResults.hasErrors())) {
294
- const deployEnvsExecutionResults = isSnap ? await this.runSnapTasks(components, isolateOptions, buildEnvsExecutionResults === null || buildEnvsExecutionResults === void 0 ? void 0 : buildEnvsExecutionResults.tasksResults) : await this.runTagTasks(components, isolateOptions, buildEnvsExecutionResults === null || buildEnvsExecutionResults === void 0 ? void 0 : buildEnvsExecutionResults.tasksResults);
293
+ const builderOptionsForTagSnap = _objectSpread(_objectSpread({}, builderOptions), {}, {
294
+ seedersOnly: isolateOptions.seedersOnly,
295
+ previousTasksResults: buildEnvsExecutionResults === null || buildEnvsExecutionResults === void 0 ? void 0 : buildEnvsExecutionResults.tasksResults
296
+ });
297
+ const deployEnvsExecutionResults = isSnap ? await this.runSnapTasks(components, builderOptionsForTagSnap) : await this.runTagTasks(components, builderOptionsForTagSnap);
295
298
  if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();
296
299
  allTasksResults.push(...deployEnvsExecutionResults.tasksResults);
297
300
  pipeResults.push(deployEnvsExecutionResults);
@@ -427,20 +430,14 @@ class BuilderMain {
427
430
  const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);
428
431
  return buildResult;
429
432
  }
430
- async runTagTasks(components, isolateOptions, previousTasksResults) {
433
+ async runTagTasks(components, builderOptions) {
431
434
  const envs = await this.envs.createEnvironment(components);
432
- const buildResult = await envs.runOnce(this.tagService, {
433
- seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
434
- previousTasksResults
435
- });
435
+ const buildResult = await envs.runOnce(this.tagService, builderOptions);
436
436
  return buildResult;
437
437
  }
438
- async runSnapTasks(components, isolateOptions, previousTasksResults) {
438
+ async runSnapTasks(components, builderOptions) {
439
439
  const envs = await this.envs.createEnvironment(components);
440
- const buildResult = await envs.runOnce(this.snapService, {
441
- seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
442
- previousTasksResults
443
- });
440
+ const buildResult = await envs.runOnce(this.snapService, builderOptions);
444
441
  return buildResult;
445
442
  }
446
443
  listTasks(component) {
@@ -1 +1 @@
1
- {"version":3,"names":["FILE_PATH_PARAM_DELIM","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","getArtifactsDataOfComponent","pipeline","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","skipBuildPipeline","populateArtifactsFromParent","buildEnvsExecutionResults","build","emptyRootDir","skipTests","tasks","AspectAspect","undefined","throwErrorsIfExist","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFromParent","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","promises","builderData","idStr","parents","head","parent","parentComp","getHost","get","changeVersion","parentBuilderData","getBuilderData","artifact","artifactObj","toObject","find","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","data","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","Object","assign","fromArtifactObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","originalSeeders","buildResult","runOnce","previousTasksResults","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent, ComponentAspect, ComponentMain, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport AspectAspect from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n skipBuildPipeline?: boolean; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n combineBuildDataFromParent?: boolean; // helpful for tagging from scope where we want to save the build-data of parent snap.\n skipTests?: boolean;\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList<FsArtifact>>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<RawBuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<RawBuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts, aspectsData, bitVersion: getHarmonyVersion(true) };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, skipBuildPipeline } = options;\n if (options.skipBuildPipeline) isolateOptions.populateArtifactsFromParent = true;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n skipTests: options.skipTests,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: skipBuildPipeline ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions, buildEnvsExecutionResults?.tasksResults)\n : await this.runTagTasks(components, isolateOptions, buildEnvsExecutionResults?.tasksResults);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (options.combineBuildDataFromParent) await this.combineBuildDataFromParent(builderDataMap);\n this.validateBuilderDataMap(builderDataMap);\n\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<RawBuilderData>) {\n builderDataMap.forEach((buildData: RawBuilderData, component) => {\n const taskSerializedIds = buildData.pipeline.map((t) =>\n BuildTaskHelper.serializeId({ aspectId: t.taskId, name: t.taskName })\n );\n const duplications = findDuplications(taskSerializedIds);\n if (duplications.length) {\n throw new Error(\n `build-task-results validation has failed. the following task(s) of \"${component.id.toString()}\" are duplicated: ${duplications.join(\n ', '\n )}`\n );\n }\n });\n }\n\n private async combineBuildDataFromParent(builderDataMap: ComponentMap<RawBuilderData>) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const idStr = component.id.toString();\n const parents = component.head?.parents;\n if (!parents || parents.length !== 1) {\n throw new Error(`expect parents of ${idStr} to be 1, got ${parents?.length || 'none'}`);\n }\n const parent = parents[0];\n const parentComp = await this.componentAspect.getHost().get(component.id.changeVersion(parent.toString()));\n if (!parentComp) throw new Error(`unable to load parent component of ${idStr}. hash: ${parent}`);\n const parentBuilderData = this.getBuilderData(parentComp);\n if (!parentBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n parentBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find((a) => a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name)\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n parentBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n parentBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n getDataByAspect(component: IComponent, aspectName: string): Serializable | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n async runSnapTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["FILE_PATH_PARAM_DELIM","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","getArtifactsDataOfComponent","pipeline","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","skipBuildPipeline","populateArtifactsFromParent","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","push","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFromParent","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","promises","builderData","idStr","parents","head","parent","parentComp","getHost","get","changeVersion","parentBuilderData","getBuilderData","artifact","artifactObj","toObject","find","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","data","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","Object","assign","fromArtifactObject","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","buildResult","runOnce","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent, ComponentAspect, ComponentMain, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport AspectAspect from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n skipBuildPipeline?: boolean; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n combineBuildDataFromParent?: boolean; // helpful for tagging from scope where we want to save the build-data of parent snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList<FsArtifact>>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<RawBuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<RawBuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts, aspectsData, bitVersion: getHarmonyVersion(true) };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {},\n builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, skipBuildPipeline } = options;\n if (options.skipBuildPipeline) isolateOptions.populateArtifactsFromParent = true;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: skipBuildPipeline ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (options.combineBuildDataFromParent) await this.combineBuildDataFromParent(builderDataMap);\n this.validateBuilderDataMap(builderDataMap);\n\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<RawBuilderData>) {\n builderDataMap.forEach((buildData: RawBuilderData, component) => {\n const taskSerializedIds = buildData.pipeline.map((t) =>\n BuildTaskHelper.serializeId({ aspectId: t.taskId, name: t.taskName })\n );\n const duplications = findDuplications(taskSerializedIds);\n if (duplications.length) {\n throw new Error(\n `build-task-results validation has failed. the following task(s) of \"${component.id.toString()}\" are duplicated: ${duplications.join(\n ', '\n )}`\n );\n }\n });\n }\n\n private async combineBuildDataFromParent(builderDataMap: ComponentMap<RawBuilderData>) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const idStr = component.id.toString();\n const parents = component.head?.parents;\n if (!parents || parents.length !== 1) {\n throw new Error(`expect parents of ${idStr} to be 1, got ${parents?.length || 'none'}`);\n }\n const parent = parents[0];\n const parentComp = await this.componentAspect.getHost().get(component.id.changeVersion(parent.toString()));\n if (!parentComp) throw new Error(`unable to load parent component of ${idStr}. hash: ${parent}`);\n const parentBuilderData = this.getBuilderData(parentComp);\n if (!parentBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n parentBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find((a) => a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name)\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n parentBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n parentBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n getDataByAspect(component: IComponent, aspectName: string): Serializable | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare type BuilderServiceOptions = {
22
22
  skipTests?: boolean;
23
23
  previousTasksResults?: TaskResults[];
24
24
  dev?: boolean;
25
+ exitOnFirstFailedTask?: boolean;
25
26
  };
26
27
  declare type BuilderTransformationMap = ServiceTransformationMap & {
27
28
  getBuildPipe: () => BuildTask[];
@@ -132,7 +132,9 @@ class BuilderService {
132
132
  });
133
133
  envsBuildContext[executionContext.id] = buildContext;
134
134
  });
135
- const buildPipe = new (_buildPipe().BuildPipe)(tasksQueue, envsBuildContext, this.logger, this.artifactFactory, options.previousTasksResults);
135
+ const buildPipe = new (_buildPipe().BuildPipe)(tasksQueue, envsBuildContext, this.logger, this.artifactFactory, options.previousTasksResults, {
136
+ exitOnFirstFailedTask: options.exitOnFirstFailedTask
137
+ });
136
138
  const buildResults = await buildPipe.execute();
137
139
  longProcessLogger.end();
138
140
  buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();
@@ -1 +1 @@
1
- {"version":3,"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","renderOnePipe","transform","envContext","build","undefined","pipeline","compute","tag","snap","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"sources":["builder.service.tsx"],"sourcesContent":["import { 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 { 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};\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\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\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 ) {}\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 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, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\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 );\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 render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</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 private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\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":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","exitOnFirstFailedTask","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","renderOnePipe","transform","envContext","build","undefined","pipeline","compute","tag","snap","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"sources":["builder.service.tsx"],"sourcesContent":["import { 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 { 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};\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\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\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 ) {}\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 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, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\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 render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</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 private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\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.1061/dist/builder.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1061/dist/builder.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1063/dist/builder.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1063/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,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/builder",
3
- "version": "0.0.1061",
3
+ "version": "0.0.1063",
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.1061"
9
+ "version": "0.0.1063"
10
10
  },
11
11
  "dependencies": {
12
12
  "p-map-series": "2.1.0",
@@ -27,21 +27,21 @@
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.1061",
31
- "@teambit/envs": "0.0.1061",
32
- "@teambit/logger": "0.0.807",
33
- "@teambit/tester": "0.0.1061",
34
- "@teambit/isolator": "0.0.1061",
35
- "@teambit/lane-id": "0.0.231",
36
- "@teambit/cli": "0.0.714",
37
- "@teambit/workspace": "0.0.1061",
38
- "@teambit/aspect-loader": "0.0.1061",
39
- "@teambit/aspect": "0.0.1061",
40
- "@teambit/generator": "0.0.1061",
41
- "@teambit/graphql": "0.0.1061",
42
- "@teambit/scope": "0.0.1061",
43
- "@teambit/ui": "0.0.1061",
44
- "@teambit/express": "0.0.812",
30
+ "@teambit/component": "0.0.1063",
31
+ "@teambit/envs": "0.0.1063",
32
+ "@teambit/logger": "0.0.809",
33
+ "@teambit/tester": "0.0.1063",
34
+ "@teambit/isolator": "0.0.1063",
35
+ "@teambit/lane-id": "0.0.233",
36
+ "@teambit/cli": "0.0.716",
37
+ "@teambit/workspace": "0.0.1063",
38
+ "@teambit/aspect-loader": "0.0.1063",
39
+ "@teambit/aspect": "0.0.1063",
40
+ "@teambit/generator": "0.0.1063",
41
+ "@teambit/graphql": "0.0.1063",
42
+ "@teambit/scope": "0.0.1063",
43
+ "@teambit/ui": "0.0.1063",
44
+ "@teambit/express": "0.0.814",
45
45
  "@teambit/bit-error": "0.0.402"
46
46
  },
47
47
  "devDependencies": {
@@ -59,7 +59,7 @@
59
59
  "@teambit/pipelines.aspect-docs.builder": "0.0.153"
60
60
  },
61
61
  "peerDependencies": {
62
- "@teambit/legacy": "1.0.494",
62
+ "@teambit/legacy": "1.0.496",
63
63
  "react": "^16.8.0 || ^17.0.0",
64
64
  "react-dom": "^16.8.0 || ^17.0.0"
65
65
  },