@teambit/builder 1.0.10 → 1.0.11

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.
@@ -82,6 +82,7 @@ class BuildPipe {
82
82
  * execute a pipeline of build tasks.
83
83
  */
84
84
  async execute() {
85
+ var _Object$values$;
85
86
  this.addSignalListener();
86
87
  await this.executePreBuild();
87
88
  this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);
@@ -90,7 +91,8 @@ class BuildPipe {
90
91
  env
91
92
  }) => this.executeTask(task, env));
92
93
  this.longProcessLogger.end();
93
- const tasksResultsList = new (_taskResultsList().TaskResultsList)(this.tasksQueue, this.taskResults);
94
+ const capsuleRootDir = (_Object$values$ = Object.values(this.envsBuildContext)[0]) === null || _Object$values$ === void 0 ? void 0 : _Object$values$.capsuleNetwork.capsulesRootDir;
95
+ const tasksResultsList = new (_taskResultsList().TaskResultsList)(this.tasksQueue, this.taskResults, capsuleRootDir);
94
96
  await this.executePostBuild(tasksResultsList);
95
97
  return tasksResultsList;
96
98
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_prettyTime","_toolboxString","_chalk","_buildTask","_taskResultsList","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","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","_this$options","taskId","BuildTaskHelper","serializeId","envName","showEnvNameInOutput","getPrettyEnvName","taskLogPrefix","getPrettyAspectName","aspectId","name","logProgress","description","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","_c$errors","errors","artifacts","duration","prettyTime","chalk","red","getProgress","failedTasks","push","consoleSuccess","green","defs","generate","startTime","resolvedId","ComponentID","fromString","tokens","split","map","token","capitalize","join","envId","_this$options2","ver","showEnvVersionInOutput","version","fullName","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","deserializeIdAllowEmptyName","find","failedTask","_this$options3","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults","exports"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap, ComponentID } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport chalk from 'chalk';\nimport { ArtifactFactory, ArtifactList, FsArtifact } from './artifact';\nimport { BuildContext, BuildTask, BuildTaskHelper, BuiltTaskResult } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\ntype PipeOptions = {\n exitOnFirstFailedTask?: boolean; // by default it skips only when a dependent failed.\n showEnvNameInOutput?: boolean;\n showEnvVersionInOutput?: boolean; // in case it shows the env-name, whether should show also the version\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[],\n private options?: PipeOptions\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n const longProcessLogger = this.logger.createLongProcessLogger('running pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n longProcessLogger.end();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const envName = this.options?.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';\n const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;\n this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n const duration = prettyTime(process.hrtime(startTask));\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.logger.consoleFailure(\n chalk.red(`${this.longProcessLogger.getProgress()} env: ${env.id}, task \"${taskId}\" has failed in ${duration}`)\n );\n this.failedTasks.push(task);\n } else {\n this.logger.consoleSuccess(\n chalk.green(`${this.longProcessLogger.getProgress()} ${taskLogPrefix} Completed successfully in ${duration}`)\n );\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private getPrettyAspectName(aspectId: string): string {\n const resolvedId = ComponentID.fromString(aspectId);\n const tokens = resolvedId.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n private getPrettyEnvName(envId: string) {\n const resolvedId = ComponentID.fromString(envId);\n const ver = this.options?.showEnvVersionInOutput ? `@${resolvedId.version}` : '';\n return `${resolvedId.fullName}${ver}`;\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n const longProcessLogger = this.logger.createLongProcessLogger('running post-build for all tasks');\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n longProcessLogger.end();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {\n const failedTaskId = BuildTaskHelper.serializeId(this.failedTasks[0]);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string): BuildContext {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.allTasksResults;\n return buildContext;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_prettyTime","_toolboxString","_chalk","_buildTask","_taskResultsList","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","options","allTasksResults","taskResults","execute","_Object$values$","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","capsuleRootDir","values","capsuleNetwork","capsulesRootDir","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","_this$options","taskId","BuildTaskHelper","serializeId","envName","showEnvNameInOutput","getPrettyEnvName","taskLogPrefix","getPrettyAspectName","aspectId","name","logProgress","description","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","_c$errors","errors","artifacts","duration","prettyTime","chalk","red","getProgress","failedTasks","push","consoleSuccess","green","defs","generate","startTime","resolvedId","ComponentID","fromString","tokens","split","map","token","capitalize","join","envId","_this$options2","ver","showEnvVersionInOutput","version","fullName","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","deserializeIdAllowEmptyName","find","failedTask","_this$options3","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults","exports"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap, ComponentID } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport chalk from 'chalk';\nimport { ArtifactFactory, ArtifactList, FsArtifact } from './artifact';\nimport { BuildContext, BuildTask, BuildTaskHelper, BuiltTaskResult } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\ntype PipeOptions = {\n exitOnFirstFailedTask?: boolean; // by default it skips only when a dependent failed.\n showEnvNameInOutput?: boolean;\n showEnvVersionInOutput?: boolean; // in case it shows the env-name, whether should show also the version\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[],\n private options?: PipeOptions\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const capsuleRootDir = Object.values(this.envsBuildContext)[0]?.capsuleNetwork.capsulesRootDir;\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults, capsuleRootDir);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n const longProcessLogger = this.logger.createLongProcessLogger('running pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n longProcessLogger.end();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const envName = this.options?.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';\n const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;\n this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n const duration = prettyTime(process.hrtime(startTask));\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.logger.consoleFailure(\n chalk.red(`${this.longProcessLogger.getProgress()} env: ${env.id}, task \"${taskId}\" has failed in ${duration}`)\n );\n this.failedTasks.push(task);\n } else {\n this.logger.consoleSuccess(\n chalk.green(`${this.longProcessLogger.getProgress()} ${taskLogPrefix} Completed successfully in ${duration}`)\n );\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private getPrettyAspectName(aspectId: string): string {\n const resolvedId = ComponentID.fromString(aspectId);\n const tokens = resolvedId.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n private getPrettyEnvName(envId: string) {\n const resolvedId = ComponentID.fromString(envId);\n const ver = this.options?.showEnvVersionInOutput ? `@${resolvedId.version}` : '';\n return `${resolvedId.fullName}${ver}`;\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n const longProcessLogger = this.logger.createLongProcessLogger('running post-build for all tasks');\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n longProcessLogger.end();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {\n const failedTaskId = BuildTaskHelper.serializeId(this.failedTasks[0]);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string): BuildContext {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.allTasksResults;\n return buildContext;\n }\n}\n"],"mappings":"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"}
package/dist/build.cmd.js CHANGED
@@ -4,6 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BuilderCmd = void 0;
7
+ function _prettyTime() {
8
+ const data = _interopRequireDefault(require("pretty-time"));
9
+ _prettyTime = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
7
14
  function _workspace() {
8
15
  const data = require("@teambit/workspace");
9
16
  _workspace = function () {
@@ -67,7 +74,8 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
67
74
  if (listTasks) {
68
75
  return this.getListTasks(listTasks);
69
76
  }
70
- const longProcessLogger = this.logger.createLongProcessLogger('build');
77
+ this.logger.setStatusLine('build');
78
+ const start = process.hrtime();
71
79
  const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);
72
80
  if (!components.length) {
73
81
  return _chalk().default.bold(`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`);
@@ -89,9 +97,15 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
89
97
  skipTests,
90
98
  exitOnFirstFailedTask: failFast
91
99
  });
92
- longProcessLogger.end(envsExecutionResults.hasErrors() ? 'error' : 'success');
100
+ this.logger.console(`build output can be found in path: ${envsExecutionResults.capsuleRootDir}`);
101
+ const duration = (0, _prettyTime().default)(process.hrtime(start));
102
+ const succeedOrFailed = envsExecutionResults.hasErrors() ? 'failed' : 'succeeded';
103
+ const msg = `build ${succeedOrFailed}. completed in ${duration}.`;
104
+ if (envsExecutionResults.hasErrors()) {
105
+ this.logger.consoleFailure(msg);
106
+ }
93
107
  envsExecutionResults.throwErrorsIfExist();
94
- return _chalk().default.green(`build complete. total: ${envsExecutionResults.tasksQueue.length} tasks`);
108
+ return _chalk().default.green(msg);
95
109
  }
96
110
  async getListTasks(componentIdStr) {
97
111
  const compId = await this.workspace.resolveComponentId(componentIdStr);
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_constants","_chalk","_interopRequireDefault","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","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","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","end","hasErrors","throwErrorsIfExist","green","tasksQueue","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\n\ntype BuildOpts = {\n all: boolean; // deprecated. use unmodified\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build. ';\n extendedDescription = 'by default, only new and modified components are built';\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 build process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependency 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\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n }\n );\n longProcessLogger.end(envsExecutionResults.hasErrors() ? 'error' : 'success');\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(`build complete. 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('Task 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":["_prettyTime","data","_interopRequireDefault","require","_workspace","_constants","_chalk","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","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","setStatusLine","start","process","hrtime","components","getComponentsByUserInput","length","chalk","bold","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","console","capsuleRootDir","duration","prettyTime","succeedOrFailed","hasErrors","msg","consoleFailure","throwErrorsIfExist","green","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport prettyTime from 'pretty-time';\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 extendedDescription = 'by default, only new and modified components are built';\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 build process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependency 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 this.logger.setStatusLine('build');\n const start = process.hrtime();\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\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 this.logger.console(`build output can be found in path: ${envsExecutionResults.capsuleRootDir}`);\n const duration = prettyTime(process.hrtime(start));\n const succeedOrFailed = envsExecutionResults.hasErrors() ? 'failed' : 'succeeded';\n const msg = `build ${succeedOrFailed}. completed in ${duration}.`;\n if (envsExecutionResults.hasErrors()) {\n this.logger.consoleFailure(msg);\n }\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(msg);\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('Task 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,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.10/dist/builder.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.10/dist/builder.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.11/dist/builder.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@1.0.11/dist/builder.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -6,11 +6,12 @@ export declare class TaskResultsList {
6
6
  * results of all tasks executed in the build pipeline.
7
7
  */
8
8
  tasksResults: TaskResults[];
9
+ capsuleRootDir: string;
9
10
  constructor(tasksQueue: TasksQueue,
10
11
  /**
11
12
  * results of all tasks executed in the build pipeline.
12
13
  */
13
- tasksResults: TaskResults[]);
14
+ tasksResults: TaskResults[], capsuleRootDir: string);
14
15
  hasErrors(): boolean;
15
16
  throwErrorsIfExist(): void;
16
17
  /**
@@ -31,9 +31,10 @@ class TaskResultsList {
31
31
  /**
32
32
  * results of all tasks executed in the build pipeline.
33
33
  */
34
- tasksResults) {
34
+ tasksResults, capsuleRootDir) {
35
35
  this.tasksQueue = tasksQueue;
36
36
  this.tasksResults = tasksResults;
37
+ this.capsuleRootDir = capsuleRootDir;
37
38
  }
38
39
  hasErrors() {
39
40
  return this.tasksResults.some(taskResult => taskResult.componentsResults.find(c => {
@@ -1 +1 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_bitError","_buildTask","obj","__esModule","default","TaskResultsList","constructor","tasksQueue","tasksResults","hasErrors","some","taskResult","componentsResults","find","c","_c$errors","errors","length","throwErrorsIfExist","errorMessage","getErrorMessageFormatted","BitError","tasksErrors","totalErrors","forEach","compsWithErrors","filter","_c$errors2","title","chalk","bold","BuildTaskHelper","serializeId","task","env","id","errorsStr","map","compWithErrors","aggregateTaskErrorsToOneString","join","taskErrors","reduce","acc","current","summery","push","totalTasks","totalFailed","totalSucceed","totalSkipped","componentResult","rawErrors","e","toString","component","exports"],"sources":["task-results-list.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { BitError } from '@teambit/bit-error';\nimport { BuildTaskHelper } from './build-task';\nimport { TasksQueue } from './tasks-queue';\nimport { TaskResults } from './build-pipe';\nimport { ComponentResult } from './types';\n\nexport class TaskResultsList {\n constructor(\n public tasksQueue: TasksQueue,\n /**\n * results of all tasks executed in the build pipeline.\n */\n public tasksResults: TaskResults[]\n ) {}\n\n hasErrors(): boolean {\n return this.tasksResults.some((taskResult) => taskResult.componentsResults.find((c) => c.errors?.length));\n }\n\n throwErrorsIfExist() {\n const errorMessage = this.getErrorMessageFormatted();\n if (errorMessage) {\n throw new BitError(errorMessage);\n }\n }\n\n /**\n * group errors from all tasks and show them nicely to the user\n */\n public getErrorMessageFormatted(): string | null {\n const tasksErrors: string[] = [];\n let totalErrors = 0;\n this.tasksResults.forEach((taskResult) => {\n const compsWithErrors = taskResult.componentsResults.filter((c) => c.errors?.length);\n if (!compsWithErrors.length) return;\n const title = chalk.bold(\n `Failed task ${tasksErrors.length + 1}: \"${BuildTaskHelper.serializeId(taskResult.task)}\" of env \"${\n taskResult.env.id\n }\"\\n`\n );\n const errorsStr = compsWithErrors\n .map((compWithErrors) => this.aggregateTaskErrorsToOneString(compWithErrors))\n .join('\\n\\n');\n const taskErrors = compsWithErrors.reduce((acc, current) => acc + (current.errors || []).length, 0);\n const summery = `\\n\\nFound ${taskErrors} errors in ${compsWithErrors.length} components`;\n totalErrors += taskErrors;\n tasksErrors.push(title + errorsStr + summery);\n });\n if (!tasksErrors.length) return null;\n const title = `\\nThe following errors were found while running the build pipeline\\n`;\n const errorsStr = tasksErrors.join('\\n\\n');\n const totalTasks = this.tasksQueue.length;\n const totalFailed = tasksErrors.length;\n const totalSucceed = this.tasksResults.length - totalFailed;\n const totalSkipped = totalTasks - this.tasksResults.length;\n const summery = `\\n\\n\\n✖ Total ${totalTasks} tasks. ${totalSucceed} succeeded. ${totalFailed} failed. ${totalSkipped} skipped. Total errors: ${totalErrors}.`;\n return title + errorsStr + summery;\n }\n\n private aggregateTaskErrorsToOneString(componentResult: ComponentResult) {\n const rawErrors = componentResult.errors || [];\n const errors = rawErrors.map((e) => (typeof e === 'string' ? e : e.toString()));\n return `component: ${componentResult.component.id.toString()}\\n${errors.join('\\n')}`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_bitError","_buildTask","obj","__esModule","default","TaskResultsList","constructor","tasksQueue","tasksResults","capsuleRootDir","hasErrors","some","taskResult","componentsResults","find","c","_c$errors","errors","length","throwErrorsIfExist","errorMessage","getErrorMessageFormatted","BitError","tasksErrors","totalErrors","forEach","compsWithErrors","filter","_c$errors2","title","chalk","bold","BuildTaskHelper","serializeId","task","env","id","errorsStr","map","compWithErrors","aggregateTaskErrorsToOneString","join","taskErrors","reduce","acc","current","summery","push","totalTasks","totalFailed","totalSucceed","totalSkipped","componentResult","rawErrors","e","toString","component","exports"],"sources":["task-results-list.ts"],"sourcesContent":["import chalk from 'chalk';\nimport { BitError } from '@teambit/bit-error';\nimport { BuildTaskHelper } from './build-task';\nimport { TasksQueue } from './tasks-queue';\nimport { TaskResults } from './build-pipe';\nimport { ComponentResult } from './types';\n\nexport class TaskResultsList {\n constructor(\n public tasksQueue: TasksQueue,\n /**\n * results of all tasks executed in the build pipeline.\n */\n public tasksResults: TaskResults[],\n\n public capsuleRootDir: string\n ) {}\n\n hasErrors(): boolean {\n return this.tasksResults.some((taskResult) => taskResult.componentsResults.find((c) => c.errors?.length));\n }\n\n throwErrorsIfExist() {\n const errorMessage = this.getErrorMessageFormatted();\n if (errorMessage) {\n throw new BitError(errorMessage);\n }\n }\n\n /**\n * group errors from all tasks and show them nicely to the user\n */\n public getErrorMessageFormatted(): string | null {\n const tasksErrors: string[] = [];\n let totalErrors = 0;\n this.tasksResults.forEach((taskResult) => {\n const compsWithErrors = taskResult.componentsResults.filter((c) => c.errors?.length);\n if (!compsWithErrors.length) return;\n const title = chalk.bold(\n `Failed task ${tasksErrors.length + 1}: \"${BuildTaskHelper.serializeId(taskResult.task)}\" of env \"${\n taskResult.env.id\n }\"\\n`\n );\n const errorsStr = compsWithErrors\n .map((compWithErrors) => this.aggregateTaskErrorsToOneString(compWithErrors))\n .join('\\n\\n');\n const taskErrors = compsWithErrors.reduce((acc, current) => acc + (current.errors || []).length, 0);\n const summery = `\\n\\nFound ${taskErrors} errors in ${compsWithErrors.length} components`;\n totalErrors += taskErrors;\n tasksErrors.push(title + errorsStr + summery);\n });\n if (!tasksErrors.length) return null;\n const title = `\\nThe following errors were found while running the build pipeline\\n`;\n const errorsStr = tasksErrors.join('\\n\\n');\n const totalTasks = this.tasksQueue.length;\n const totalFailed = tasksErrors.length;\n const totalSucceed = this.tasksResults.length - totalFailed;\n const totalSkipped = totalTasks - this.tasksResults.length;\n const summery = `\\n\\n\\n✖ Total ${totalTasks} tasks. ${totalSucceed} succeeded. ${totalFailed} failed. ${totalSkipped} skipped. Total errors: ${totalErrors}.`;\n return title + errorsStr + summery;\n }\n\n private aggregateTaskErrorsToOneString(componentResult: ComponentResult) {\n const rawErrors = componentResult.errors || [];\n const errors = rawErrors.map((e) => (typeof e === 'string' ? e : e.toString()));\n return `component: ${componentResult.component.id.toString()}\\n${errors.join('\\n')}`;\n }\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/builder",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
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": "1.0.10"
9
+ "version": "1.0.11"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "2.4.2",
@@ -27,23 +27,23 @@
27
27
  "@teambit/graph.cleargraph": "0.0.1",
28
28
  "@teambit/harmony": "0.4.6",
29
29
  "@teambit/component-id": "0.0.427",
30
- "@teambit/component": "1.0.10",
31
- "@teambit/envs": "1.0.10",
32
- "@teambit/logger": "0.0.885",
30
+ "@teambit/component": "1.0.11",
31
+ "@teambit/envs": "1.0.11",
32
+ "@teambit/logger": "0.0.886",
33
33
  "@teambit/toolbox.string.capitalize": "0.0.492",
34
- "@teambit/tester": "1.0.10",
35
- "@teambit/isolator": "1.0.10",
34
+ "@teambit/tester": "1.0.11",
35
+ "@teambit/isolator": "1.0.11",
36
36
  "@teambit/lane-id": "0.0.305",
37
- "@teambit/cli": "0.0.792",
38
- "@teambit/workspace": "1.0.10",
39
- "@teambit/aspect-loader": "1.0.10",
40
- "@teambit/aspect": "1.0.10",
41
- "@teambit/generator": "1.0.11",
42
- "@teambit/global-config": "0.0.794",
43
- "@teambit/graphql": "1.0.10",
44
- "@teambit/scope": "1.0.10",
45
- "@teambit/ui": "1.0.10",
46
- "@teambit/express": "0.0.891",
37
+ "@teambit/cli": "0.0.793",
38
+ "@teambit/workspace": "1.0.11",
39
+ "@teambit/aspect-loader": "1.0.11",
40
+ "@teambit/aspect": "1.0.11",
41
+ "@teambit/generator": "1.0.12",
42
+ "@teambit/global-config": "0.0.795",
43
+ "@teambit/graphql": "1.0.11",
44
+ "@teambit/scope": "1.0.11",
45
+ "@teambit/ui": "1.0.11",
46
+ "@teambit/express": "0.0.892",
47
47
  "@teambit/bit-error": "0.0.404"
48
48
  },
49
49
  "devDependencies": {
@@ -58,7 +58,7 @@
58
58
  "@types/react-dom": "^17.0.5",
59
59
  "@types/jest": "^26.0.0",
60
60
  "@types/testing-library__jest-dom": "5.9.5",
61
- "@teambit/pipelines.aspect-docs.builder": "0.0.161"
61
+ "@teambit/pipelines.aspect-docs.builder": "0.0.162"
62
62
  },
63
63
  "peerDependencies": {
64
64
  "@teambit/legacy": "1.0.572",