@teambit/builder 0.0.1131 → 0.0.1133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';
2
2
  import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';
3
3
  import React from 'react';
4
+ import chalk from 'chalk';
4
5
  import { uniq } from 'lodash';
5
6
  import { ScopeMain } from '@teambit/scope';
6
7
  import pMapSeries from 'p-map-series';
@@ -101,8 +102,8 @@ export class BuilderService implements EnvService<BuildServiceResults, string> {
101
102
  );
102
103
  tasksQueue.validate();
103
104
  this.logger.info(`going to run tasks in the following order:\n${tasksQueue.toString()}`);
104
- const envsStr = envs.map((env) => env.id).join(', ');
105
- const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s) (${envsStr}), total ${tasksQueue.length} tasks`;
105
+ this.logger.console('\n'); // this is to make is clear separation between the various pipelines (build/snap/tag)
106
+ const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s), total ${tasksQueue.length} tasks`;
106
107
  const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');
107
108
  const envsBuildContext: EnvsBuildContext = {};
108
109
  const capsulesBaseDir = this.getComponentsCapsulesBaseDir();
@@ -124,9 +125,9 @@ export class BuilderService implements EnvService<BuildServiceResults, string> {
124
125
  );
125
126
  const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);
126
127
  capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;
127
- this.logger.console(
128
- `generated graph for env "${executionContext.id}", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`
129
- );
128
+ const msg = `building ${originalSeedersOfThisEnv.length} components of env "${executionContext.id}"`;
129
+ const extraDetails = `original seeders of this env: ${originalSeedersOfThisEnv.length}, graph of this env: ${capsuleNetwork.seedersCapsules.length}, graph total (include other envs): ${capsuleNetwork.graphCapsules.length}`;
130
+ this.logger.console(`${msg}. ${chalk.dim(extraDetails)}`);
130
131
  const buildContext = Object.assign(executionContext, {
131
132
  capsuleNetwork,
132
133
  previousTasksResults: [],
package/dist/build.cmd.js CHANGED
@@ -79,7 +79,6 @@ specify the task-name (e.g. "TypescriptCompiler") or the task-aspect-id (e.g. te
79
79
  if (!components.length) {
80
80
  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`);
81
81
  }
82
- this.logger.consoleSuccess(`found ${components.length} components to build`);
83
82
  const envsExecutionResults = await this.builder.build(components, {
84
83
  installOptions: {
85
84
  installTeambitBit: install,
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_constants","_chalk","_interopRequireDefault","BuilderCmd","constructor","builder","workspace","logger","_defineProperty2","default","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","tasks","listTasks","skipTests","failFast","OutsideWorkspaceError","consoleWarning","getListTasks","longProcessLogger","createLongProcessLogger","components","getComponentsByUserInput","length","chalk","bold","consoleSuccess","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","end","hasErrors","throwErrorsIfExist","green","tasksQueue","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\n\ntype BuildOpts = {\n all: boolean; // deprecated. use unmodified\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n helpUrl = 'reference/build-pipeline/builder-overview';\n alias = '';\n group = 'development';\n options = [\n ['a', 'all', 'DEPRECATED. use --unmodified'],\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'],\n ['d', 'dev', 'run the pipeline in dev mode'],\n ['', 'install', 'install core aspects in capsules'],\n ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'],\n [\n '',\n 'tasks <string>',\n `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.\nspecify the task-name (e.g. \"TypescriptCompiler\") or the task-aspect-id (e.g. teambit.compilation/compiler)`,\n ],\n ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'],\n [\n '',\n 'list-tasks <string>',\n 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap',\n ],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n ] as CommandOptions;\n\n constructor(private builder: BuilderMain, private workspace: Workspace, private logger: Logger) {}\n\n async report(\n [pattern]: [string],\n {\n all = false,\n unmodified = false,\n dev = false,\n install = false,\n cachePackagesOnCapsulesRoot = false,\n reuseCapsules = false,\n tasks,\n listTasks,\n skipTests,\n failFast,\n }: BuildOpts\n ): Promise<string> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (all) {\n this.logger.consoleWarning(`--all is deprecated, please use --unmodified instead`);\n unmodified = true;\n }\n if (listTasks) {\n return this.getListTasks(listTasks);\n }\n\n const longProcessLogger = this.logger.createLongProcessLogger('build');\n const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);\n if (!components.length) {\n return chalk.bold(\n `no components found to build. use \"--unmodified\" flag to build all components or specify the ids to build, otherwise, only new and modified components will be built`\n );\n }\n this.logger.consoleSuccess(`found ${components.length} components to build`);\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n }\n );\n longProcessLogger.end(envsExecutionResults.hasErrors() ? 'error' : 'success');\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(`the build has been completed. total: ${envsExecutionResults.tasksQueue.length} tasks`);\n }\n\n private async getListTasks(componentIdStr: string): Promise<string> {\n const compId = await this.workspace.resolveComponentId(componentIdStr);\n const component = await this.workspace.get(compId);\n const results = this.builder.listTasks(component);\n return `${chalk.green('Tasks List')}\nid: ${results.id.toString()}\nenvId: ${results.envId}\n\n${chalk.bold('Build Pipeline Tasks:')}\n${results.buildTasks.join('\\n')}\n\n${chalk.bold('Tag Pipeline Tasks:')}\n${results.tagTasks.join('\\n')}\n\n${chalk.bold('Snap Pipeline Tasks:')}\n${results.snapTasks.join('\\n') || '<N/A>'}`;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_workspace","data","require","_constants","_chalk","_interopRequireDefault","BuilderCmd","constructor","builder","workspace","logger","_defineProperty2","default","name","description","COMPONENT_PATTERN_HELP","report","pattern","all","unmodified","dev","install","cachePackagesOnCapsulesRoot","reuseCapsules","tasks","listTasks","skipTests","failFast","OutsideWorkspaceError","consoleWarning","getListTasks","longProcessLogger","createLongProcessLogger","components","getComponentsByUserInput","length","chalk","bold","envsExecutionResults","build","installOptions","installTeambitBit","packageManagerConfigRootDir","path","linkingOptions","linkTeambitBit","emptyRootDir","getExistingAsIs","split","map","task","trim","exitOnFirstFailedTask","end","hasErrors","throwErrorsIfExist","green","tasksQueue","componentIdStr","compId","resolveComponentId","component","get","results","id","toString","envId","buildTasks","join","tagTasks","snapTasks","exports"],"sources":["build.cmd.ts"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { COMPONENT_PATTERN_HELP } from '@teambit/legacy/dist/constants';\nimport chalk from 'chalk';\nimport { BuilderMain } from './builder.main.runtime';\n\ntype BuildOpts = {\n all: boolean; // deprecated. use unmodified\n unmodified?: boolean;\n dev: boolean;\n rebuild: boolean;\n install: boolean;\n cachePackagesOnCapsulesRoot: boolean;\n reuseCapsules: boolean;\n tasks: string;\n listTasks?: string;\n skipTests?: boolean;\n failFast?: boolean;\n};\n\nexport class BuilderCmd implements Command {\n name = 'build [component-pattern]';\n description = 'run set of tasks for build';\n arguments = [{ name: 'component-pattern', description: COMPONENT_PATTERN_HELP }];\n helpUrl = 'reference/build-pipeline/builder-overview';\n alias = '';\n group = 'development';\n options = [\n ['a', 'all', 'DEPRECATED. use --unmodified'],\n ['u', 'unmodified', 'include unmodified components (by default, only new and modified components are built)'],\n ['d', 'dev', 'run the pipeline in dev mode'],\n ['', 'install', 'install core aspects in capsules'],\n ['', 'reuse-capsules', 'avoid deleting the capsules root-dir before starting the build'],\n [\n '',\n 'tasks <string>',\n `build the specified task(s) only. for multiple tasks, separate by a comma and wrap with quotes.\nspecify the task-name (e.g. \"TypescriptCompiler\") or the task-aspect-id (e.g. teambit.compilation/compiler)`,\n ],\n ['', 'cache-packages-on-capsule-root', 'set the package-manager cache on the capsule root'],\n [\n '',\n 'list-tasks <string>',\n 'list tasks of an env or a component-id for each one of the pipelines: build, tag and snap',\n ],\n ['', 'skip-tests', 'skip running component tests during tag process'],\n [\n '',\n 'fail-fast',\n 'stop pipeline execution on the first failed task (by default a task is skipped only when its dependent failed)',\n ],\n ] as CommandOptions;\n\n constructor(private builder: BuilderMain, private workspace: Workspace, private logger: Logger) {}\n\n async report(\n [pattern]: [string],\n {\n all = false,\n unmodified = false,\n dev = false,\n install = false,\n cachePackagesOnCapsulesRoot = false,\n reuseCapsules = false,\n tasks,\n listTasks,\n skipTests,\n failFast,\n }: BuildOpts\n ): Promise<string> {\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (all) {\n this.logger.consoleWarning(`--all is deprecated, please use --unmodified instead`);\n unmodified = true;\n }\n if (listTasks) {\n return this.getListTasks(listTasks);\n }\n\n const longProcessLogger = this.logger.createLongProcessLogger('build');\n const components = await this.workspace.getComponentsByUserInput(unmodified, pattern, true);\n if (!components.length) {\n return chalk.bold(\n `no components found to build. use \"--unmodified\" flag to build all components or specify the ids to build, otherwise, only new and modified components will be built`\n );\n }\n\n const envsExecutionResults = await this.builder.build(\n components,\n {\n installOptions: {\n installTeambitBit: install,\n packageManagerConfigRootDir: this.workspace.path,\n },\n linkingOptions: { linkTeambitBit: !install },\n emptyRootDir: !reuseCapsules,\n getExistingAsIs: reuseCapsules,\n cachePackagesOnCapsulesRoot,\n },\n {\n dev,\n tasks: tasks ? tasks.split(',').map((task) => task.trim()) : [],\n skipTests,\n exitOnFirstFailedTask: failFast,\n }\n );\n longProcessLogger.end(envsExecutionResults.hasErrors() ? 'error' : 'success');\n envsExecutionResults.throwErrorsIfExist();\n return chalk.green(`the build has been completed. total: ${envsExecutionResults.tasksQueue.length} tasks`);\n }\n\n private async getListTasks(componentIdStr: string): Promise<string> {\n const compId = await this.workspace.resolveComponentId(componentIdStr);\n const component = await this.workspace.get(compId);\n const results = this.builder.listTasks(component);\n return `${chalk.green('Tasks List')}\nid: ${results.id.toString()}\nenvId: ${results.envId}\n\n${chalk.bold('Build Pipeline Tasks:')}\n${results.buildTasks.join('\\n')}\n\n${chalk.bold('Tag Pipeline Tasks:')}\n${results.tagTasks.join('\\n')}\n\n${chalk.bold('Snap Pipeline Tasks:')}\n${results.snapTasks.join('\\n') || '<N/A>'}`;\n }\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { EnvsMain } from '@teambit/envs';
7
7
  import { GraphqlMain } from '@teambit/graphql';
8
8
  import { SlotRegistry } from '@teambit/harmony';
9
9
  import { GlobalConfigMain } from '@teambit/global-config';
10
- import { LoggerMain } from '@teambit/logger';
10
+ import { Logger, LoggerMain } from '@teambit/logger';
11
11
  import { ScopeMain } from '@teambit/scope';
12
12
  import { Workspace } from '@teambit/workspace';
13
13
  import { IsolateComponentsOptions, IsolatorMain } from '@teambit/isolator';
@@ -61,7 +61,8 @@ export declare class BuilderMain {
61
61
  private buildTaskSlot;
62
62
  private tagTaskSlot;
63
63
  private snapTaskSlot;
64
- constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, globalConfig: GlobalConfigMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot);
64
+ private logger;
65
+ constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, globalConfig: GlobalConfigMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot, logger: Logger);
65
66
  private storeArtifacts;
66
67
  private pipelineResultsToBuilderData;
67
68
  tagListener(components: Component[], options?: OnTagOpts, isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<OnTagResults>;
@@ -239,7 +239,7 @@ const FILE_PATH_PARAM_DELIM = '~';
239
239
  */
240
240
  exports.FILE_PATH_PARAM_DELIM = FILE_PATH_PARAM_DELIM;
241
241
  class BuilderMain {
242
- constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot) {
242
+ constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot, logger) {
243
243
  this.envs = envs;
244
244
  this.workspace = workspace;
245
245
  this.buildService = buildService;
@@ -253,6 +253,7 @@ class BuilderMain {
253
253
  this.buildTaskSlot = buildTaskSlot;
254
254
  this.tagTaskSlot = tagTaskSlot;
255
255
  this.snapTaskSlot = snapTaskSlot;
256
+ this.logger = logger;
256
257
  }
257
258
  async storeArtifacts(tasksResults) {
258
259
  const artifacts = tasksResults.flatMap(t => t.artifacts ? [t.artifacts] : []);
@@ -446,6 +447,7 @@ class BuilderMain {
446
447
  originalSeeders: ids,
447
448
  capsulesBaseDir
448
449
  }, builderOptions || {});
450
+ this.logger.consoleTitle(`Total ${components.length} components to build`);
449
451
  const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);
450
452
  return buildResult;
451
453
  }
@@ -517,7 +519,7 @@ class BuilderMain {
517
519
  envs.registerService(buildService);
518
520
  const tagService = new (_builder3().BuilderService)(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope, globalConfig);
519
521
  const snapService = new (_builder3().BuilderService)(isolator, logger, snapTaskSlot, 'getSnapPipe', 'snap', artifactFactory, scope, globalConfig);
520
- const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot);
522
+ const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot, logger);
521
523
  builder.registerBuildTasks([new (_ui().BundleUiTask)(ui, logger)]);
522
524
  component.registerRoute([new (_builder4().BuilderRoute)(builder, scope, logger)]);
523
525
  graphql.register((0, _builder2().builderSchema)(builder, logger));
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","data","require","_artifactFiles","_aspectLoader","_cli","_component","_envs","_graphql","_harmony","_globalConfig","_interopRequireDefault","_logger","_aspect","_scope","_workspace","_isolator","_bootstrap","_findDuplications","_generator","_ui","_artifact","_artifactFactory","_builder","_builder2","_builder3","_build","_buildTask","_exceptions","_buildPipelineResultList","_artifacts","_buildTask2","_builder4","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","FILE_PATH_PARAM_DELIM","exports","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","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","populateArtifactsFrom","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFrom","validateBuilderDataMap","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","Error","toString","join","promises","builderData","populateFrom","find","isEqual","ignoreVersion","idStr","populateFromComp","getHost","get","version","populateFromBuilderData","getBuilderData","artifact","artifactObj","toObject","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","_this$getBuilderData","_this$getBuilderData2","ArtifactList","fromArray","_component$get","_clonedData$artifacts","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","assign","fromArtifactObject","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","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","GlobalConfigAspect","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 GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\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 populateArtifactsFrom?: ComponentID[]; // helpful for tagging from scope where we want to use the build-artifacts of previous 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 globalConfig: GlobalConfigMain,\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, populateArtifactsFrom } = options;\n if (populateArtifactsFrom) isolateOptions.populateArtifactsFrom = populateArtifactsFrom;\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: populateArtifactsFrom ? [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 (populateArtifactsFrom) await this.combineBuildDataFrom(builderDataMap, populateArtifactsFrom);\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 combineBuildDataFrom(\n builderDataMap: ComponentMap<RawBuilderData>,\n populateArtifactsFrom: ComponentID[]\n ) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const populateFrom = populateArtifactsFrom.find((id) => id.isEqual(component.id, { ignoreVersion: true }));\n const idStr = component.id.toString();\n if (!populateFrom) {\n throw new Error(`combineBuildDataFromParent: unable to find where to populate the artifacts from for ${idStr}`);\n }\n const populateFromComp = await this.componentAspect.getHost().get(populateFrom);\n if (!populateFromComp)\n throw new Error(\n `combineBuildDataFromParent, unable to load parent component of ${idStr}. hash: ${populateFrom.version}`\n );\n const populateFromBuilderData = this.getBuilderData(populateFromComp);\n if (!populateFromBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n populateFromBuilderData.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 populateFromBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n populateFromBuilderData.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 capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\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 GlobalConfigAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain\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 globalConfig\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(\n isolator,\n logger,\n tagTaskSlot,\n 'getTagPipe',\n 'tag',\n artifactFactory,\n scope,\n globalConfig\n );\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope,\n globalConfig\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 globalConfig,\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":["_lodash","data","require","_artifactFiles","_aspectLoader","_cli","_component","_envs","_graphql","_harmony","_globalConfig","_interopRequireDefault","_logger","_aspect","_scope","_workspace","_isolator","_bootstrap","_findDuplications","_generator","_ui","_artifact","_artifactFactory","_builder","_builder2","_builder3","_build","_buildTask","_exceptions","_buildPipelineResultList","_artifacts","_buildTask2","_builder4","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","FILE_PATH_PARAM_DELIM","exports","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","buildTaskSlot","tagTaskSlot","snapTaskSlot","logger","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","populateArtifactsFrom","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFrom","validateBuilderDataMap","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","Error","toString","join","promises","builderData","populateFrom","find","isEqual","ignoreVersion","idStr","populateFromComp","getHost","get","version","populateFromBuilderData","getBuilderData","artifact","artifactObj","toObject","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","_this$getBuilderData","_this$getBuilderData2","ArtifactList","fromArray","_component$get","_clonedData$artifacts","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","assign","fromArtifactObject","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","consoleTitle","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","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","GlobalConfigAspect","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 GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport { Logger, 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 populateArtifactsFrom?: ComponentID[]; // helpful for tagging from scope where we want to use the build-artifacts of previous 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 globalConfig: GlobalConfigMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot,\n private logger: Logger\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, populateArtifactsFrom } = options;\n if (populateArtifactsFrom) isolateOptions.populateArtifactsFrom = populateArtifactsFrom;\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: populateArtifactsFrom ? [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 (populateArtifactsFrom) await this.combineBuildDataFrom(builderDataMap, populateArtifactsFrom);\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 combineBuildDataFrom(\n builderDataMap: ComponentMap<RawBuilderData>,\n populateArtifactsFrom: ComponentID[]\n ) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const populateFrom = populateArtifactsFrom.find((id) => id.isEqual(component.id, { ignoreVersion: true }));\n const idStr = component.id.toString();\n if (!populateFrom) {\n throw new Error(`combineBuildDataFromParent: unable to find where to populate the artifacts from for ${idStr}`);\n }\n const populateFromComp = await this.componentAspect.getHost().get(populateFrom);\n if (!populateFromComp)\n throw new Error(\n `combineBuildDataFromParent, unable to load parent component of ${idStr}. hash: ${populateFrom.version}`\n );\n const populateFromBuilderData = this.getBuilderData(populateFromComp);\n if (!populateFromBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n populateFromBuilderData.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 populateFromBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n populateFromBuilderData.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 capsulesBaseDir = this.buildService.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\n ...(builderOptions || {}),\n };\n this.logger.consoleTitle(`Total ${components.length} components to build`);\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 GlobalConfigAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain\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 globalConfig\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(\n isolator,\n logger,\n tagTaskSlot,\n 'getTagPipe',\n 'tag',\n artifactFactory,\n scope,\n globalConfig\n );\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope,\n globalConfig\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 globalConfig,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot,\n logger\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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"}
@@ -28,6 +28,13 @@ function _react() {
28
28
  };
29
29
  return data;
30
30
  }
31
+ function _chalk() {
32
+ const data = _interopRequireDefault(require("chalk"));
33
+ _chalk = function () {
34
+ return data;
35
+ };
36
+ return data;
37
+ }
31
38
  function _lodash() {
32
39
  const data = require("lodash");
33
40
  _lodash = function () {
@@ -123,8 +130,8 @@ class BuilderService {
123
130
  const tasksQueue = (0, _buildPipelineOrder().calculatePipelineOrder)(this.taskSlot, envs, this.pipeNameOnEnv, options.tasks, options.skipTests);
124
131
  tasksQueue.validate();
125
132
  this.logger.info(`going to run tasks in the following order:\n${tasksQueue.toString()}`);
126
- const envsStr = envs.map(env => env.id).join(', ');
127
- const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s) (${envsStr}), total ${tasksQueue.length} tasks`;
133
+ this.logger.console('\n'); // this is to make is clear separation between the various pipelines (build/snap/tag)
134
+ const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s), total ${tasksQueue.length} tasks`;
128
135
  const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');
129
136
  const envsBuildContext = {};
130
137
  const capsulesBaseDir = this.getComponentsCapsulesBaseDir();
@@ -144,7 +151,9 @@ class BuilderService {
144
151
  const originalSeedersOfThisEnv = componentIds.filter(compId => originalSeeders ? originalSeeders.find(seeder => compId.isEqual(seeder)) : true);
145
152
  const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);
146
153
  capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;
147
- this.logger.console(`generated graph for env "${executionContext.id}", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`);
154
+ const msg = `building ${originalSeedersOfThisEnv.length} components of env "${executionContext.id}"`;
155
+ const extraDetails = `original seeders of this env: ${originalSeedersOfThisEnv.length}, graph of this env: ${capsuleNetwork.seedersCapsules.length}, graph total (include other envs): ${capsuleNetwork.graphCapsules.length}`;
156
+ this.logger.console(`${msg}. ${_chalk().default.dim(extraDetails)}`);
148
157
  const buildContext = Object.assign(executionContext, {
149
158
  capsuleNetwork,
150
159
  previousTasksResults: [],
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","data","require","_react","_interopRequireDefault","_lodash","_pMapSeries","_ink","_buildPipe","_buildTask","_buildPipelineOrder","_builder","pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","globalConfig","_defineProperty2","default","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","envsStr","env","id","join","title","length","longProcessLogger","createLongProcessLogger","undefined","envsBuildContext","capsulesBaseDir","getComponentsCapsulesBaseDir","baseDir","useHash","isolateOptions","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","envIdsWithoutVersion","split","buildPipe","BuildPipe","exitOnFirstFailedTask","showEnvNameInOutput","showEnvVersionInOutput","uniq","buildResults","execute","end","hasErrors","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","render","descriptor","getDescriptor","createElement","Text","key","BuilderAspect","Newline","transform","envContext","build","pipeline","compute","tag","snap","getTasksNamesByPipeFunc","pipeFuncName","task","BuildTaskHelper","serializeId","getCurrentPipeTasks","exports"],"sources":["builder.service.tsx"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { uniq } from 'lodash';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\nexport type PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, string> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain,\n private globalConfig: GlobalConfigMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const envsStr = envs.map((env) => env.id).join(', ');\n const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s) (${envsStr}), total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');\n const envsBuildContext: EnvsBuildContext = {};\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n\n const baseDir = options.capsulesBaseDir || capsulesBaseDir;\n const useHash = !baseDir;\n const isolateOptions = {\n baseDir,\n useHash,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const envIdsWithoutVersion = envs.map((env) => env.id.split('@')[0]);\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n {\n exitOnFirstFailedTask: options.exitOnFirstFailedTask,\n showEnvNameInOutput: envs.length > 1,\n showEnvVersionInOutput: envIdsWithoutVersion.length > uniq(envIdsWithoutVersion).length,\n }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');\n\n return buildResults;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n render() {\n const descriptor = this.getDescriptor();\n\n return (\n <Text key={BuilderAspect.id}>\n {descriptor}\n <Newline />\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n getDescriptor() {\n return 'run `bit build --list-tasks <component-id>` to see the tasks list for the pipelines: build, tag and snap';\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","data","require","_react","_interopRequireDefault","_chalk","_lodash","_pMapSeries","_ink","_buildPipe","_buildTask","_buildPipelineOrder","_builder","pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","globalConfig","_defineProperty2","default","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","console","title","length","longProcessLogger","createLongProcessLogger","undefined","envsBuildContext","capsulesBaseDir","getComponentsCapsulesBaseDir","baseDir","useHash","isolateOptions","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","msg","extraDetails","seedersCapsules","graphCapsules","chalk","dim","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","envIdsWithoutVersion","env","split","buildPipe","BuildPipe","exitOnFirstFailedTask","showEnvNameInOutput","showEnvVersionInOutput","uniq","buildResults","execute","end","hasErrors","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","render","descriptor","getDescriptor","createElement","Text","key","BuilderAspect","Newline","transform","envContext","build","pipeline","compute","tag","snap","getTasksNamesByPipeFunc","pipeFuncName","task","BuildTaskHelper","serializeId","getCurrentPipeTasks","exports"],"sources":["builder.service.tsx"],"sourcesContent":["import { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport chalk from 'chalk';\nimport { uniq } from 'lodash';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { GlobalConfigMain } from '@teambit/global-config';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\nexport type PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, string> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain,\n private globalConfig: GlobalConfigMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n this.logger.console('\\n'); // this is to make is clear separation between the various pipelines (build/snap/tag)\n const title = `Running ${this.displayPipeName} pipeline using ${envs.length} environment(s), total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title, undefined, 'title');\n const envsBuildContext: EnvsBuildContext = {};\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n\n const baseDir = options.capsulesBaseDir || capsulesBaseDir;\n const useHash = !baseDir;\n const isolateOptions = {\n baseDir,\n useHash,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOptions);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n const msg = `building ${originalSeedersOfThisEnv.length} components of env \"${executionContext.id}\"`;\n const extraDetails = `original seeders of this env: ${originalSeedersOfThisEnv.length}, graph of this env: ${capsuleNetwork.seedersCapsules.length}, graph total (include other envs): ${capsuleNetwork.graphCapsules.length}`;\n this.logger.console(`${msg}. ${chalk.dim(extraDetails)}`);\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const envIdsWithoutVersion = envs.map((env) => env.id.split('@')[0]);\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n {\n exitOnFirstFailedTask: options.exitOnFirstFailedTask,\n showEnvNameInOutput: envs.length > 1,\n showEnvVersionInOutput: envIdsWithoutVersion.length > uniq(envIdsWithoutVersion).length,\n }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end(buildResults.hasErrors() ? 'error' : 'success');\n\n return buildResults;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n render() {\n const descriptor = this.getDescriptor();\n\n return (\n <Text key={BuilderAspect.id}>\n {descriptor}\n <Newline />\n <Newline />\n </Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n getDescriptor() {\n return 'run `bit build --list-tasks <component-id>` to see the tasks list for the pipelines: build, tag and snap';\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1131/dist/builder.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1131/dist/builder.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1133/dist/builder.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1133/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.1131",
3
+ "version": "0.0.1133",
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.1131"
9
+ "version": "0.0.1133"
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": "0.0.1131",
31
- "@teambit/envs": "0.0.1131",
32
- "@teambit/logger": "0.0.850",
30
+ "@teambit/component": "0.0.1133",
31
+ "@teambit/envs": "0.0.1133",
32
+ "@teambit/logger": "0.0.852",
33
33
  "@teambit/toolbox.string.capitalize": "0.0.490",
34
- "@teambit/tester": "0.0.1131",
35
- "@teambit/isolator": "0.0.1131",
36
- "@teambit/lane-id": "0.0.272",
37
- "@teambit/cli": "0.0.757",
38
- "@teambit/workspace": "0.0.1131",
39
- "@teambit/aspect-loader": "0.0.1131",
40
- "@teambit/aspect": "0.0.1131",
41
- "@teambit/generator": "0.0.1131",
42
- "@teambit/global-config": "0.0.759",
43
- "@teambit/graphql": "0.0.1131",
44
- "@teambit/scope": "0.0.1131",
45
- "@teambit/ui": "0.0.1131",
46
- "@teambit/express": "0.0.855",
34
+ "@teambit/tester": "0.0.1133",
35
+ "@teambit/isolator": "0.0.1133",
36
+ "@teambit/lane-id": "0.0.274",
37
+ "@teambit/cli": "0.0.759",
38
+ "@teambit/workspace": "0.0.1133",
39
+ "@teambit/aspect-loader": "0.0.1133",
40
+ "@teambit/aspect": "0.0.1133",
41
+ "@teambit/generator": "0.0.1133",
42
+ "@teambit/global-config": "0.0.761",
43
+ "@teambit/graphql": "0.0.1133",
44
+ "@teambit/scope": "0.0.1133",
45
+ "@teambit/ui": "0.0.1133",
46
+ "@teambit/express": "0.0.857",
47
47
  "@teambit/bit-error": "0.0.402"
48
48
  },
49
49
  "devDependencies": {
@@ -58,10 +58,10 @@
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.155"
61
+ "@teambit/pipelines.aspect-docs.builder": "0.0.156"
62
62
  },
63
63
  "peerDependencies": {
64
- "@teambit/legacy": "1.0.540",
64
+ "@teambit/legacy": "1.0.542",
65
65
  "react": "^16.8.0 || ^17.0.0",
66
66
  "react-dom": "^16.8.0 || ^17.0.0"
67
67
  },