@teambit/builder 0.0.786 → 0.0.789

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,4 +1,5 @@
1
1
  import path from 'path';
2
+ import filenamify from 'filenamify';
2
3
  import fs from 'fs-extra';
3
4
  import { ScopeMain } from '@teambit/scope';
4
5
  import { ComponentID } from '@teambit/component-id';
@@ -76,8 +77,9 @@ export class ArtifactExtractor {
76
77
  )
77
78
  );
78
79
  const flattenedVinyls = vinyls.flat();
79
- // if asked for only one component, shorten the path by omitting the id
80
- const compPath = artifactObjectsPerId.length > 1 ? path.join(outDir, id.toStringWithoutVersion()) : outDir;
80
+ // make sure the component-dir is just one dir. without this, every slash in the component-id will create a new dir.
81
+ const idAsFilename = filenamify(id.toStringWithoutVersion(), { replacement: '_' });
82
+ const compPath = path.join(outDir, idAsFilename);
81
83
  await Promise.all(flattenedVinyls.map((vinyl) => fs.outputFile(path.join(compPath, vinyl.path), vinyl.contents)));
82
84
  });
83
85
  }
@@ -25,6 +25,16 @@ function _path() {
25
25
  return data;
26
26
  }
27
27
 
28
+ function _filenamify() {
29
+ const data = _interopRequireDefault(require("filenamify"));
30
+
31
+ _filenamify = function () {
32
+ return data;
33
+ };
34
+
35
+ return data;
36
+ }
37
+
28
38
  function _fsExtra() {
29
39
  const data = _interopRequireDefault(require("fs-extra"));
30
40
 
@@ -115,9 +125,14 @@ class ArtifactExtractor {
115
125
  artifacts
116
126
  }) => {
117
127
  const vinyls = await Promise.all(artifacts.map(artifactObject => artifactObject.files.getVinylsAndImportIfMissing(id._legacy, this.scope.legacyScope)));
118
- const flattenedVinyls = vinyls.flat(); // if asked for only one component, shorten the path by omitting the id
128
+ const flattenedVinyls = vinyls.flat(); // make sure the component-dir is just one dir. without this, every slash in the component-id will create a new dir.
129
+
130
+ const idAsFilename = (0, _filenamify().default)(id.toStringWithoutVersion(), {
131
+ replacement: '_'
132
+ });
133
+
134
+ const compPath = _path().default.join(outDir, idAsFilename);
119
135
 
120
- const compPath = artifactObjectsPerId.length > 1 ? _path().default.join(outDir, id.toStringWithoutVersion()) : outDir;
121
136
  await Promise.all(flattenedVinyls.map(vinyl => _fsExtra().default.outputFile(_path().default.join(compPath, vinyl.path), vinyl.contents)));
122
137
  });
123
138
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ArtifactExtractor","constructor","scope","builder","pattern","options","list","ids","idsByPattern","components","loadMany","artifactObjectsPerId","map","component","id","artifacts","getArtifacts","filterByOptions","saveFilesInFileSystemIfAsked","artifactsObjectsToExtractorResults","groupResultsByAspect","extractorResult","result","reduce","acc","current","aspectId","push","outDir","pMapSeries","vinyls","Promise","all","artifactObject","files","getVinylsAndImportIfMissing","_legacy","legacyScope","flattenedVinyls","flat","compPath","length","path","join","toStringWithoutVersion","vinyl","fs","outputFile","contents","results","artifact","artifactName","name","task","taskName","generatedBy","refs","ref","relativePath","aspect","forEach","item","filter","minimatch","ArtifactFiles"],"sources":["artifact-extractor.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { ScopeMain } from '@teambit/scope';\nimport { ComponentID } from '@teambit/component-id';\nimport pMapSeries from 'p-map-series';\nimport minimatch from 'minimatch';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { BuilderMain } from '../builder.main.runtime';\nimport { ArtifactsOpts } from './artifacts.cmd';\n\nexport type ExtractorResult = {\n id: ComponentID;\n artifacts: ExtractorArtifactResult[];\n};\n\nexport type ExtractorArtifactResult = {\n artifactName: string;\n aspectId: string;\n taskName: string;\n files: string[];\n};\n\nexport type ExtractorResultGrouped = {\n id: ComponentID;\n artifacts: { [aspectId: string]: ExtractorArtifactResult[] };\n};\n\ntype ArtifactObjectsPerId = {\n id: ComponentID;\n artifacts: ArtifactObject[];\n};\n\nexport class ArtifactExtractor {\n constructor(\n private scope: ScopeMain,\n private builder: BuilderMain,\n private pattern: string,\n private options: ArtifactsOpts\n ) {}\n\n async list(): Promise<ExtractorResult[]> {\n const ids = await this.scope.idsByPattern(this.pattern);\n const components = await this.scope.loadMany(ids);\n const artifactObjectsPerId: ArtifactObjectsPerId[] = components.map((component) => {\n return {\n id: component.id,\n artifacts: this.builder.getArtifacts(component) || [],\n };\n });\n this.filterByOptions(artifactObjectsPerId);\n await this.saveFilesInFileSystemIfAsked(artifactObjectsPerId);\n\n return this.artifactsObjectsToExtractorResults(artifactObjectsPerId);\n }\n\n groupResultsByAspect(extractorResult: ExtractorResult[]) {\n return extractorResult.map((result) => {\n const artifacts = result.artifacts.reduce((acc, current) => {\n (acc[current.aspectId] ||= []).push(current);\n return acc;\n }, {});\n return { id: result.id, artifacts };\n });\n }\n\n private async saveFilesInFileSystemIfAsked(artifactObjectsPerId: ArtifactObjectsPerId[]) {\n const outDir = this.options.outDir;\n if (!outDir) {\n return;\n }\n // @todo: optimize this to first import all missing hashes.\n await pMapSeries(artifactObjectsPerId, async ({ id, artifacts }) => {\n const vinyls = await Promise.all(\n artifacts.map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(id._legacy, this.scope.legacyScope)\n )\n );\n const flattenedVinyls = vinyls.flat();\n // if asked for only one component, shorten the path by omitting the id\n const compPath = artifactObjectsPerId.length > 1 ? path.join(outDir, id.toStringWithoutVersion()) : outDir;\n await Promise.all(flattenedVinyls.map((vinyl) => fs.outputFile(path.join(compPath, vinyl.path), vinyl.contents)));\n });\n }\n\n private artifactsObjectsToExtractorResults(artifactObjectsPerId: ArtifactObjectsPerId[]): ExtractorResult[] {\n return artifactObjectsPerId.map(({ id, artifacts }) => {\n const results: ExtractorArtifactResult[] = artifacts.map((artifact) => {\n return {\n artifactName: artifact.name,\n aspectId: artifact.task.id,\n taskName: artifact.task.name || artifact.generatedBy,\n files: artifact.files.refs.map((ref) => ref.relativePath),\n };\n });\n return {\n id,\n artifacts: results,\n };\n });\n }\n\n private filterByOptions(artifactObjectsPerId: ArtifactObjectsPerId[]) {\n const { aspect, task, files } = this.options;\n artifactObjectsPerId.forEach((item) => {\n item.artifacts = item.artifacts.filter((artifact) => {\n if (aspect && aspect !== artifact.task.id) return false;\n if (task && task !== artifact.task.name) return false;\n return true;\n });\n if (files) {\n item.artifacts.forEach((artifact) => {\n const refs = artifact.files.refs.filter((ref) => minimatch(ref.relativePath, files));\n artifact.files = new ArtifactFiles([], [], refs);\n });\n // remove artifacts with no files\n item.artifacts = item.artifacts.filter((artifact) => artifact.files.refs.length);\n }\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["ArtifactExtractor","constructor","scope","builder","pattern","options","list","ids","idsByPattern","components","loadMany","artifactObjectsPerId","map","component","id","artifacts","getArtifacts","filterByOptions","saveFilesInFileSystemIfAsked","artifactsObjectsToExtractorResults","groupResultsByAspect","extractorResult","result","reduce","acc","current","aspectId","push","outDir","pMapSeries","vinyls","Promise","all","artifactObject","files","getVinylsAndImportIfMissing","_legacy","legacyScope","flattenedVinyls","flat","idAsFilename","filenamify","toStringWithoutVersion","replacement","compPath","path","join","vinyl","fs","outputFile","contents","results","artifact","artifactName","name","task","taskName","generatedBy","refs","ref","relativePath","aspect","forEach","item","filter","minimatch","ArtifactFiles","length"],"sources":["artifact-extractor.ts"],"sourcesContent":["import path from 'path';\nimport filenamify from 'filenamify';\nimport fs from 'fs-extra';\nimport { ScopeMain } from '@teambit/scope';\nimport { ComponentID } from '@teambit/component-id';\nimport pMapSeries from 'p-map-series';\nimport minimatch from 'minimatch';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { BuilderMain } from '../builder.main.runtime';\nimport { ArtifactsOpts } from './artifacts.cmd';\n\nexport type ExtractorResult = {\n id: ComponentID;\n artifacts: ExtractorArtifactResult[];\n};\n\nexport type ExtractorArtifactResult = {\n artifactName: string;\n aspectId: string;\n taskName: string;\n files: string[];\n};\n\nexport type ExtractorResultGrouped = {\n id: ComponentID;\n artifacts: { [aspectId: string]: ExtractorArtifactResult[] };\n};\n\ntype ArtifactObjectsPerId = {\n id: ComponentID;\n artifacts: ArtifactObject[];\n};\n\nexport class ArtifactExtractor {\n constructor(\n private scope: ScopeMain,\n private builder: BuilderMain,\n private pattern: string,\n private options: ArtifactsOpts\n ) {}\n\n async list(): Promise<ExtractorResult[]> {\n const ids = await this.scope.idsByPattern(this.pattern);\n const components = await this.scope.loadMany(ids);\n const artifactObjectsPerId: ArtifactObjectsPerId[] = components.map((component) => {\n return {\n id: component.id,\n artifacts: this.builder.getArtifacts(component) || [],\n };\n });\n this.filterByOptions(artifactObjectsPerId);\n await this.saveFilesInFileSystemIfAsked(artifactObjectsPerId);\n\n return this.artifactsObjectsToExtractorResults(artifactObjectsPerId);\n }\n\n groupResultsByAspect(extractorResult: ExtractorResult[]) {\n return extractorResult.map((result) => {\n const artifacts = result.artifacts.reduce((acc, current) => {\n (acc[current.aspectId] ||= []).push(current);\n return acc;\n }, {});\n return { id: result.id, artifacts };\n });\n }\n\n private async saveFilesInFileSystemIfAsked(artifactObjectsPerId: ArtifactObjectsPerId[]) {\n const outDir = this.options.outDir;\n if (!outDir) {\n return;\n }\n // @todo: optimize this to first import all missing hashes.\n await pMapSeries(artifactObjectsPerId, async ({ id, artifacts }) => {\n const vinyls = await Promise.all(\n artifacts.map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(id._legacy, this.scope.legacyScope)\n )\n );\n const flattenedVinyls = vinyls.flat();\n // make sure the component-dir is just one dir. without this, every slash in the component-id will create a new dir.\n const idAsFilename = filenamify(id.toStringWithoutVersion(), { replacement: '_' });\n const compPath = path.join(outDir, idAsFilename);\n await Promise.all(flattenedVinyls.map((vinyl) => fs.outputFile(path.join(compPath, vinyl.path), vinyl.contents)));\n });\n }\n\n private artifactsObjectsToExtractorResults(artifactObjectsPerId: ArtifactObjectsPerId[]): ExtractorResult[] {\n return artifactObjectsPerId.map(({ id, artifacts }) => {\n const results: ExtractorArtifactResult[] = artifacts.map((artifact) => {\n return {\n artifactName: artifact.name,\n aspectId: artifact.task.id,\n taskName: artifact.task.name || artifact.generatedBy,\n files: artifact.files.refs.map((ref) => ref.relativePath),\n };\n });\n return {\n id,\n artifacts: results,\n };\n });\n }\n\n private filterByOptions(artifactObjectsPerId: ArtifactObjectsPerId[]) {\n const { aspect, task, files } = this.options;\n artifactObjectsPerId.forEach((item) => {\n item.artifacts = item.artifacts.filter((artifact) => {\n if (aspect && aspect !== artifact.task.id) return false;\n if (task && task !== artifact.task.name) return false;\n return true;\n });\n if (files) {\n item.artifacts.forEach((artifact) => {\n const refs = artifact.files.refs.filter((ref) => minimatch(ref.relativePath, files));\n artifact.files = new ArtifactFiles([], [], refs);\n });\n // remove artifacts with no files\n item.artifacts = item.artifacts.filter((artifact) => artifact.files.refs.length);\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -141,7 +141,15 @@ class BuildPipe {
141
141
  const startTask = process.hrtime();
142
142
  const taskStartTime = Date.now();
143
143
  const buildContext = this.getBuildContext(env.id);
144
- const buildTaskResult = await task.execute(buildContext);
144
+ let buildTaskResult;
145
+
146
+ try {
147
+ buildTaskResult = await task.execute(buildContext);
148
+ } catch (err) {
149
+ this.logger.consoleFailure(`env: ${env.id}, task "${taskId}" threw an error`);
150
+ throw err;
151
+ }
152
+
145
153
  const endTime = Date.now();
146
154
  const compsWithErrors = buildTaskResult.componentsResults.filter(c => {
147
155
  var _c$errors;
@@ -1 +1 @@
1
- {"version":3,"names":["BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","allTasksResults","taskResults","execute","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","consoleSuccess","taskId","BuildTaskHelper","serializeId","taskName","description","logProgress","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","endTime","compsWithErrors","componentsResults","filter","c","errors","artifacts","consoleFailure","failedTasks","push","duration","prettyTime","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeIdAllowEmptyName","find","failedTask","envId","failedTaskId","consoleWarning","Error","previousTasksResults","from"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { ArtifactFactory, ArtifactList } from './artifact';\nimport { BuildTask, BuildTaskHelper } 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> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[]\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n this.logger.consoleSuccess();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const taskName = `${taskId}${task.description ? ` (${task.description})` : ''}`;\n this.longProcessLogger.logProgress(`env \"${env.id}\", task \"${taskName}\"`);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n const buildTaskResult = await task.execute(buildContext);\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts;\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.failedTasks.push(task);\n } else {\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`env \"${env.id}\", task \"${taskName}\" has completed successfully in ${duration}`);\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n this.logger.consoleSuccess();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string) {\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 /**\n * create a build pipe from an array of tasks.\n */\n static from(\n tasksQueue: TasksQueue,\n envsBuildContext: EnvsBuildContext,\n logger: Logger,\n artifactFactory: ArtifactFactory,\n previousTaskResults?: TaskResults[]\n ) {\n return new BuildPipe(tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","allTasksResults","taskResults","execute","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","consoleSuccess","taskId","BuildTaskHelper","serializeId","taskName","description","logProgress","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","errors","artifacts","failedTasks","push","duration","prettyTime","defs","generate","startTime","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","aspectId","name","deserializeIdAllowEmptyName","find","failedTask","envId","failedTaskId","consoleWarning","Error","previousTasksResults","from"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { ArtifactFactory, ArtifactList } from './artifact';\nimport { 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> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[]\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n this.logger.consoleSuccess();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const taskName = `${taskId}${task.description ? ` (${task.description})` : ''}`;\n this.longProcessLogger.logProgress(`env \"${env.id}\", task \"${taskName}\"`);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts;\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.failedTasks.push(task);\n } else {\n const duration = prettyTime(process.hrtime(startTask));\n this.logger.consoleSuccess(`env \"${env.id}\", task \"${taskName}\" has completed successfully in ${duration}`);\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n this.logger.consoleSuccess();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string) {\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 /**\n * create a build pipe from an array of tasks.\n */\n static from(\n tasksQueue: TasksQueue,\n envsBuildContext: EnvsBuildContext,\n logger: Logger,\n artifactFactory: ArtifactFactory,\n previousTaskResults?: TaskResults[]\n ) {\n return new BuildPipe(tasksQueue, envsBuildContext, logger, artifactFactory, previousTaskResults);\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';
2
2
  import { AspectLoaderMain } from '@teambit/aspect-loader';
3
3
  import { CLIMain } from '@teambit/cli';
4
- import { Component } from '@teambit/component';
4
+ import { Component, IComponent } from '@teambit/component';
5
5
  import { EnvsMain } from '@teambit/envs';
6
6
  import { GraphqlMain } from '@teambit/graphql';
7
7
  import { SlotRegistry } from '@teambit/harmony';
@@ -23,6 +23,7 @@ export declare type BuilderData = {
23
23
  pipeline: PipelineReport[];
24
24
  artifacts: ArtifactObject[] | undefined;
25
25
  aspectsData: AspectData[];
26
+ bitVersion?: string;
26
27
  };
27
28
  export declare class BuilderMain {
28
29
  private envs;
@@ -48,9 +49,9 @@ export declare class BuilderMain {
48
49
  getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined;
49
50
  getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined;
50
51
  getArtifactsByExtensionAndTaskName(component: Component, aspectName: string, taskName: string): ArtifactObject[] | undefined;
51
- getDataByAspect(component: Component, aspectName: string): Serializable | undefined;
52
+ getDataByAspect(component: IComponent, aspectName: string): Serializable | undefined;
52
53
  getArtifacts(component: Component): ArtifactObject[] | undefined;
53
- getBuilderData(component: Component): BuilderData | undefined;
54
+ getBuilderData(component: IComponent): BuilderData | undefined;
54
55
  /**
55
56
  * build given components for release.
56
57
  * for each one of the envs it runs a series of tasks.
@@ -135,6 +135,16 @@ function _isolator() {
135
135
  return data;
136
136
  }
137
137
 
138
+ function _bootstrap() {
139
+ const data = require("@teambit/legacy/dist/bootstrap");
140
+
141
+ _bootstrap = function () {
142
+ return data;
143
+ };
144
+
145
+ return data;
146
+ }
147
+
138
148
  function _findDuplications() {
139
149
  const data = _interopRequireDefault(require("@teambit/legacy/dist/utils/array/find-duplications"));
140
150
 
@@ -307,7 +317,8 @@ class BuilderMain {
307
317
  return {
308
318
  pipeline: pipelineReport,
309
319
  artifacts: artifactsData,
310
- aspectsData
320
+ aspectsData,
321
+ bitVersion: (0, _bootstrap().getHarmonyVersion)(true)
311
322
  };
312
323
  });
313
324
  }
@@ -413,9 +424,9 @@ class BuilderMain {
413
424
  }
414
425
 
415
426
  getBuilderData(component) {
416
- var _component$state$aspe, _data$artifacts;
427
+ var _component$get, _data$artifacts;
417
428
 
418
- const data = (_component$state$aspe = component.state.aspects.get(_builder().BuilderAspect.id)) === null || _component$state$aspe === void 0 ? void 0 : _component$state$aspe.data;
429
+ const data = (_component$get = component.get(_builder().BuilderAspect.id)) === null || _component$get === void 0 ? void 0 : _component$get.data;
419
430
  if (!data) return undefined;
420
431
  (_data$artifacts = data.artifacts) === null || _data$artifacts === void 0 ? void 0 : _data$artifacts.forEach(artifact => {
421
432
  if (!(artifact.files instanceof _artifactFiles().ArtifactFiles)) {
@@ -1 +1 @@
1
- {"version":3,"names":["BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","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","artifactsData","getArtifactsDataOfComponent","pipeline","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","_legacy","legacyScope","flatten","getArtifactsVinylByExtensionAndName","getArtifactsByExtensionAndName","getArtifactsVinylByExtensionAndTaskName","getArtifactsByExtensionAndTaskName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","find","aspectData","state","aspects","get","BuilderAspect","undefined","ArtifactFiles","fromObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","originalSeeders","buildResult","runOnce","previousTasksResults","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","builderSchema","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { flatten } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain, OnTagResults } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { OnTagOpts } from '@teambit/legacy/dist/scope/scope';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { ArtifactList } 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';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\n\nexport type BuilderData = {\n pipeline: PipelineReport[];\n artifacts: ArtifactObject[] | undefined;\n aspectsData: AspectData[];\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 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>) => {\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<BuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<BuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts: artifactsData, aspectsData };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap } = options;\n const envsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n { skipTests: options.skipTests }\n );\n if (throwOnError && !forceDeploy) envsExecutionResults.throwErrorsIfExist();\n const allTasksResults = [...envsExecutionResults.tasksResults];\n pipeResults.push(envsExecutionResults);\n if (forceDeploy || (!disableTagAndSnapPipelines && !envsExecutionResults.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions, envsExecutionResults.tasksResults)\n : await this.runTagTasks(components, isolateOptions, envsExecutionResults.tasksResults);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n this.validateBuilderDataMap(builderDataMap);\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<BuilderData>) {\n builderDataMap.forEach((buildData: BuilderData, 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 // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtension(component, aspectName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndTaskName(\n component: Component,\n aspectName: string,\n taskName: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndTaskName(component, aspectName, taskName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.name === name);\n }\n\n getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName);\n }\n\n getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.name === name);\n }\n\n getArtifactsByExtensionAndTaskName(\n component: Component,\n aspectName: string,\n taskName: string\n ): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.task.name === taskName);\n }\n\n getDataByAspect(component: Component, 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: Component): ArtifactObject[] | undefined {\n return this.getBuilderData(component)?.artifacts;\n }\n\n getBuilderData(component: Component): BuilderData | undefined {\n const data = component.state.aspects.get(BuilderAspect.id)?.data as BuilderData | undefined;\n if (!data) return undefined;\n data.artifacts?.forEach((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifact.files = ArtifactFiles.fromObject(artifact.files);\n }\n });\n return data;\n }\n\n /**\n * build given components for release.\n * for each one of the envs it runs a series of tasks.\n * in case of an error in a task, it stops the execution of that env and continue to the next\n * env. at the end, the results contain the data and errors per env.\n */\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n async runSnapTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n 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 ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n\n graphql.register(builderSchema(builder));\n generator.registerComponentTemplate([buildTaskTemplate]);\n const func = builder.tagListener.bind(builder);\n if (scope) scope.onTag(func);\n if (workspace) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
1
+ {"version":3,"names":["BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","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","artifactsData","getArtifactsDataOfComponent","pipeline","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","pipeResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","envsExecutionResults","build","emptyRootDir","skipTests","throwErrorsIfExist","allTasksResults","push","hasErrors","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","_legacy","legacyScope","flatten","getArtifactsVinylByExtensionAndName","getArtifactsByExtensionAndName","getArtifactsVinylByExtensionAndTaskName","getArtifactsByExtensionAndTaskName","getArtifactsByName","getArtifacts","filter","artifact","task","getDataByAspect","getBuilderData","data","find","aspectData","get","BuilderAspect","undefined","ArtifactFiles","fromObject","builderOptions","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","seedersOnly","originalSeeders","buildResult","runOnce","previousTasksResults","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","tasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","provider","cli","loggerExt","graphql","generator","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","builderSchema","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { flatten } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { ScopeAspect, ScopeMain, OnTagResults } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { OnTagOpts } from '@teambit/legacy/dist/scope/scope';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { ArtifactList } 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';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\n\nexport type BuilderData = {\n pipeline: PipelineReport[];\n artifacts: ArtifactObject[] | undefined;\n aspectsData: AspectData[];\n bitVersion?: string;\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 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>) => {\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<BuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<BuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifactsData = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts: artifactsData, aspectsData, bitVersion: getHarmonyVersion(true) };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap } = options;\n const envsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n { skipTests: options.skipTests }\n );\n if (throwOnError && !forceDeploy) envsExecutionResults.throwErrorsIfExist();\n const allTasksResults = [...envsExecutionResults.tasksResults];\n pipeResults.push(envsExecutionResults);\n if (forceDeploy || (!disableTagAndSnapPipelines && !envsExecutionResults.hasErrors())) {\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, isolateOptions, envsExecutionResults.tasksResults)\n : await this.runTagTasks(components, isolateOptions, envsExecutionResults.tasksResults);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n this.validateBuilderDataMap(builderDataMap);\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<BuilderData>) {\n builderDataMap.forEach((buildData: BuilderData, 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 // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByExtension(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtension(component, aspectName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndName(component, aspectName, name);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n async getArtifactsVinylByExtensionAndTaskName(\n component: Component,\n aspectName: string,\n taskName: string\n ): Promise<ArtifactVinyl[]> {\n const artifactsObjects = this.getArtifactsByExtensionAndTaskName(component, aspectName, taskName);\n const vinyls = await Promise.all(\n (artifactsObjects || []).map((artifactObject) =>\n artifactObject.files.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope)\n )\n );\n return flatten(vinyls);\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.name === name);\n }\n\n getArtifactsByExtension(component: Component, aspectName: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName);\n }\n\n getArtifactsByExtensionAndName(component: Component, aspectName: string, name: string): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.name === name);\n }\n\n getArtifactsByExtensionAndTaskName(\n component: Component,\n aspectName: string,\n taskName: string\n ): ArtifactObject[] | undefined {\n const artifacts = this.getArtifacts(component);\n return artifacts?.filter((artifact) => artifact.task.id === aspectName && artifact.task.name === taskName);\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: Component): ArtifactObject[] | undefined {\n return this.getBuilderData(component)?.artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data as BuilderData | undefined;\n if (!data) return undefined;\n data.artifacts?.forEach((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifact.files = ArtifactFiles.fromObject(artifact.files);\n }\n });\n return data;\n }\n\n /**\n * build given components for release.\n * for each one of the envs it runs a series of tasks.\n * in case of an error in a task, it stops the execution of that env and continue to the next\n * env. at the end, the results contain the data and errors per env.\n */\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n async runSnapTasks(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n previousTasksResults?: TaskResults[]\n ): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, {\n seedersOnly: isolateOptions?.seedersOnly,\n previousTasksResults,\n });\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n 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 ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n\n graphql.register(builderSchema(builder));\n generator.registerComponentTemplate([buildTaskTemplate]);\n const func = builder.tagListener.bind(builder);\n if (scope) scope.onTag(func);\n if (workspace) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/builder",
3
- "version": "0.0.786",
3
+ "version": "0.0.789",
4
4
  "homepage": "https://bit.dev/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.786"
9
+ "version": "0.0.789"
10
10
  },
11
11
  "dependencies": {
12
12
  "p-map-series": "2.1.0",
@@ -15,6 +15,7 @@
15
15
  "chalk": "2.4.2",
16
16
  "graphql-tag": "2.12.1",
17
17
  "ink": "3.2.0",
18
+ "filenamify": "4.2.0",
18
19
  "fs-extra": "10.0.0",
19
20
  "minimatch": "3.0.4",
20
21
  "globby": "11.0.1",
@@ -22,17 +23,17 @@
22
23
  "core-js": "^3.0.0",
23
24
  "@teambit/graph.cleargraph": "0.0.1",
24
25
  "@teambit/harmony": "0.3.3",
25
- "@teambit/component": "0.0.786",
26
- "@teambit/envs": "0.0.786",
27
- "@teambit/logger": "0.0.612",
28
- "@teambit/tester": "0.0.786",
29
- "@teambit/isolator": "0.0.786",
30
- "@teambit/cli": "0.0.519",
31
- "@teambit/workspace": "0.0.786",
32
- "@teambit/aspect-loader": "0.0.786",
33
- "@teambit/generator": "0.0.786",
34
- "@teambit/graphql": "0.0.786",
35
- "@teambit/scope": "0.0.786",
26
+ "@teambit/component": "0.0.789",
27
+ "@teambit/envs": "0.0.789",
28
+ "@teambit/logger": "0.0.615",
29
+ "@teambit/tester": "0.0.789",
30
+ "@teambit/isolator": "0.0.789",
31
+ "@teambit/cli": "0.0.522",
32
+ "@teambit/workspace": "0.0.789",
33
+ "@teambit/aspect-loader": "0.0.789",
34
+ "@teambit/generator": "0.0.789",
35
+ "@teambit/graphql": "0.0.789",
36
+ "@teambit/scope": "0.0.789",
36
37
  "@teambit/bit-error": "0.0.394",
37
38
  "@teambit/component-id": "0.0.402"
38
39
  },
@@ -49,7 +50,7 @@
49
50
  "@teambit/pipelines.aspect-docs.builder": "0.0.139"
50
51
  },
51
52
  "peerDependencies": {
52
- "@teambit/legacy": "1.0.300",
53
+ "@teambit/legacy": "1.0.304",
53
54
  "react-dom": "^16.8.0 || ^17.0.0",
54
55
  "react": "^16.8.0 || ^17.0.0"
55
56
  },
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.786/dist/builder.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.786/dist/builder.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.789/dist/builder.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.789/dist/builder.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];