@teambit/builder 0.0.647 → 0.0.651
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.
- package/{__preview-1644549681149.js → __preview-1645365357220.js} +1 -1
- package/builder.service.tsx +8 -2
- package/dist/builder.main.runtime.js +2 -1
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/builder.service.d.ts +2 -1
- package/dist/builder.service.js +6 -1
- package/dist/builder.service.js.map +1 -1
- package/package-tar/teambit-builder-0.0.651.tgz +0 -0
- package/package.json +18 -18
- package/package-tar/teambit-builder-0.0.647.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.
|
|
1
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.651/dist/builder.docs.mdx')]
|
package/builder.service.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import { ScopeMain } from '@teambit/scope';
|
|
|
4
4
|
import { Text, Newline } from 'ink';
|
|
5
5
|
import { Logger } from '@teambit/logger';
|
|
6
6
|
import { IsolatorMain } from '@teambit/isolator';
|
|
7
|
-
import { Component } from '@teambit/component';
|
|
7
|
+
import { Component, ComponentID } from '@teambit/component';
|
|
8
8
|
import { BuildPipe, TaskResults } from './build-pipe';
|
|
9
9
|
import { TaskResultsList } from './task-results-list';
|
|
10
10
|
import { TaskSlot } from './builder.main.runtime';
|
|
@@ -22,6 +22,7 @@ export type BuildServiceResults = {
|
|
|
22
22
|
|
|
23
23
|
export type BuilderServiceOptions = {
|
|
24
24
|
seedersOnly?: boolean;
|
|
25
|
+
originalSeeders?: ComponentID[];
|
|
25
26
|
tasks?: string[];
|
|
26
27
|
skipTests?: boolean;
|
|
27
28
|
previousTasksResults?: TaskResults[];
|
|
@@ -94,12 +95,17 @@ export class BuilderService implements EnvService<BuildServiceResults, BuilderDe
|
|
|
94
95
|
await Promise.all(
|
|
95
96
|
envsExecutionContext.map(async (executionContext) => {
|
|
96
97
|
const componentIds = executionContext.components.map((component) => component.id);
|
|
98
|
+
const { originalSeeders } = options;
|
|
99
|
+
const originalSeedersOfThisEnv = componentIds.filter((compId) =>
|
|
100
|
+
originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true
|
|
101
|
+
);
|
|
97
102
|
const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {
|
|
98
103
|
getExistingAsIs: true,
|
|
99
104
|
seedersOnly: options.seedersOnly,
|
|
100
105
|
});
|
|
106
|
+
capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;
|
|
101
107
|
this.logger.console(
|
|
102
|
-
`generated graph for env "${executionContext.id}",
|
|
108
|
+
`generated graph for env "${executionContext.id}", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`
|
|
103
109
|
);
|
|
104
110
|
const buildContext = Object.assign(executionContext, {
|
|
105
111
|
capsuleNetwork,
|
|
@@ -438,7 +438,8 @@ class BuilderMain {
|
|
|
438
438
|
const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());
|
|
439
439
|
|
|
440
440
|
const builderServiceOptions = _objectSpread({
|
|
441
|
-
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly
|
|
441
|
+
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
|
|
442
|
+
originalSeeders: ids
|
|
442
443
|
}, builderOptions || {});
|
|
443
444
|
|
|
444
445
|
const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["builder.main.runtime.ts"],"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","length","Error","toString","join","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","legacyScope","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","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","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"mappings":"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","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.scope as string, 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.scope as string, 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.scope as string, 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);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = { seedersOnly: isolateOptions?.seedersOnly, ...(builderOptions || {}) };\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 && !workspace.consumer.isLegacy) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.unregister('build');\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"]}
|
|
1
|
+
{"version":3,"sources":["builder.main.runtime.ts"],"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","length","Error","toString","join","getArtifactsVinylByExtension","aspectName","artifactsObjects","getArtifactsByExtension","vinyls","artifactObject","files","getVinylsAndImportIfMissing","legacyScope","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","registerComponentTemplate","buildTaskTemplate","func","bind","onTag","consumer","isLegacy","commands","BuilderCmd","ArtifactsCmd","unregister","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","addRuntime"],"mappings":"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","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.scope as string, 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.scope as string, 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.scope as string, 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);\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 && !workspace.consumer.isLegacy) {\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, scope)];\n cli.unregister('build');\n cli.register(...commands);\n }\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"]}
|
|
@@ -3,7 +3,7 @@ import { EnvDefinition, EnvService, ExecutionContext } from '@teambit/envs';
|
|
|
3
3
|
import { ScopeMain } from '@teambit/scope';
|
|
4
4
|
import { Logger } from '@teambit/logger';
|
|
5
5
|
import { IsolatorMain } from '@teambit/isolator';
|
|
6
|
-
import { Component } from '@teambit/component';
|
|
6
|
+
import { Component, ComponentID } from '@teambit/component';
|
|
7
7
|
import { TaskResults } from './build-pipe';
|
|
8
8
|
import { TaskResultsList } from './task-results-list';
|
|
9
9
|
import { TaskSlot } from './builder.main.runtime';
|
|
@@ -17,6 +17,7 @@ export declare type BuildServiceResults = {
|
|
|
17
17
|
};
|
|
18
18
|
export declare type BuilderServiceOptions = {
|
|
19
19
|
seedersOnly?: boolean;
|
|
20
|
+
originalSeeders?: ComponentID[];
|
|
20
21
|
tasks?: string[];
|
|
21
22
|
skipTests?: boolean;
|
|
22
23
|
previousTasksResults?: TaskResults[];
|
package/dist/builder.service.js
CHANGED
|
@@ -134,11 +134,16 @@ class BuilderService {
|
|
|
134
134
|
const envsBuildContext = {};
|
|
135
135
|
await Promise.all(envsExecutionContext.map(async executionContext => {
|
|
136
136
|
const componentIds = executionContext.components.map(component => component.id);
|
|
137
|
+
const {
|
|
138
|
+
originalSeeders
|
|
139
|
+
} = options;
|
|
140
|
+
const originalSeedersOfThisEnv = componentIds.filter(compId => originalSeeders ? originalSeeders.find(seeder => compId.isEqual(seeder)) : true);
|
|
137
141
|
const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {
|
|
138
142
|
getExistingAsIs: true,
|
|
139
143
|
seedersOnly: options.seedersOnly
|
|
140
144
|
});
|
|
141
|
-
|
|
145
|
+
capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;
|
|
146
|
+
this.logger.console(`generated graph for env "${executionContext.id}", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`);
|
|
142
147
|
const buildContext = Object.assign(executionContext, {
|
|
143
148
|
capsuleNetwork,
|
|
144
149
|
previousTasksResults: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["builder.service.tsx"],"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","Promise","all","componentIds","components","component","id","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","dev","buildPipe","BuildPipe","from","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","pipeName","renderOnePipe","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAIA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAGA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAEA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AACA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAmBA,MAAMA,SAAS,GAAG;AAChBC,EAAAA,YAAY,EAAE,OADE;AAEhBC,EAAAA,UAAU,EAAE,KAFI;AAGhBC,EAAAA,WAAW,EAAE;AAHG,CAAlB;;AAWO,MAAMC,cAAN,CAAmF;AAGxFC,EAAAA,WAAW;AACT;AACJ;AACA;AACYC,EAAAA,QAJC;AAMT;AACJ;AACA;AACYC,EAAAA,MATC;AAWT;AACJ;AACA;AACYC,EAAAA,QAdC;AAgBT;AACJ;AACA;AACYC,EAAAA,aAnBC;AAqBT;AACJ;AACA;AACYC,EAAAA,eAxBC,EAyBDC,eAzBC,EA0BDC,KA1BC,EA2BT;AAAA,SAvBQN,QAuBR,GAvBQA,QAuBR;AAAA,SAlBQC,MAkBR,GAlBQA,MAkBR;AAAA,SAbQC,QAaR,GAbQA,QAaR;AAAA,SARQC,aAQR,GARQA,aAQR;AAAA,SAHQC,eAGR,GAHQA,eAGR;AAAA,SAFQC,eAER,GAFQA,eAER;AAAA,SADQC,KACR,GADQA,KACR;AAAA,kDA7BK,SA6BL;AAAE;AAEJ;AACF;AACA;;;AACe,QAAPC,OAAO,CAACC,oBAAD,EAA2CC,OAA3C,EAAqG;AAChH,UAAMC,IAAI,GAAGF,oBAAoB,CAACG,GAArB,CAA0BC,gBAAD,IAAsBA,gBAAgB,CAACC,aAAhE,CAAb;AACA,UAAMC,UAAU,GAAG,kDACjB,KAAKZ,QADY,EAEjBQ,IAFiB,EAGjB,KAAKP,aAHY,EAIjBM,OAAO,CAACM,KAJS,EAKjBN,OAAO,CAACO,SALS,CAAnB;AAOAF,IAAAA,UAAU,CAACG,QAAX;AACA,SAAKhB,MAAL,CAAYiB,IAAZ,CAAkB,+CAA8CJ,UAAU,CAACK,QAAX,EAAsB,EAAtF;AACA,UAAMC,KAAK,GAAI,WAAU,KAAKhB,eAAgB,aAAYM,IAAI,CAACW,MAAO,wBAAuBP,UAAU,CAACO,MAAO,QAA/G;AACA,UAAMC,iBAAiB,GAAG,KAAKrB,MAAL,CAAYsB,uBAAZ,CAAoCH,KAApC,CAA1B;AACA,SAAKnB,MAAL,CAAYuB,YAAZ,CAAyBJ,KAAzB;AACA,UAAMK,gBAAkC,GAAG,EAA3C;AACA,UAAMC,OAAO,CAACC,GAAR,CACJnB,oBAAoB,CAACG,GAArB,CAAyB,MAAOC,gBAAP,IAA4B;AACnD,YAAMgB,YAAY,GAAGhB,gBAAgB,CAACiB,UAAjB,CAA4BlB,GAA5B,CAAiCmB,SAAD,IAAeA,SAAS,CAACC,EAAzD,CAArB;AACA,YAAMC,cAAc,GAAG,MAAM,KAAKhC,QAAL,CAAciC,iBAAd,CAAgCL,YAAhC,EAA8C;AACzEM,QAAAA,eAAe,EAAE,IADwD;AAEzEC,QAAAA,WAAW,EAAE1B,OAAO,CAAC0B;AAFoD,OAA9C,CAA7B;AAIA,WAAKlC,MAAL,CAAYmC,OAAZ,CACG,4BAA2BxB,gBAAgB,CAACmB,EAAG,qBAAoBC,cAAc,CAACK,eAAf,CAA+BhB,MAAO,kBAAiBW,cAAc,CAACM,aAAf,CAA6BjB,MAAO,EADjK;AAGA,YAAMkB,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAc7B,gBAAd,EAAgC;AACnDoB,QAAAA,cADmD;AAEnDU,QAAAA,oBAAoB,EAAE,EAF6B;AAGnDC,QAAAA,GAAG,EAAElC,OAAO,CAACkC;AAHsC,OAAhC,CAArB;AAKAlB,MAAAA,gBAAgB,CAACb,gBAAgB,CAACmB,EAAlB,CAAhB,GAAwCQ,YAAxC;AACD,KAfD,CADI,CAAN;;AAkBA,UAAMK,SAAS,GAAGC,uBAAUC,IAAV,CAChBhC,UADgB,EAEhBW,gBAFgB,EAGhB,KAAKxB,MAHW,EAIhB,KAAKI,eAJW,EAKhBI,OAAO,CAACiC,oBALQ,CAAlB;;AAOA,UAAMK,YAAY,GAAG,MAAMH,SAAS,CAACI,OAAV,EAA3B;AACA1B,IAAAA,iBAAiB,CAAC2B,GAAlB;AACAF,IAAAA,YAAY,CAACG,SAAb,KAA2B,KAAKjD,MAAL,CAAYkD,cAAZ,EAA3B,GAA0D,KAAKlD,MAAL,CAAYmD,cAAZ,EAA1D;AAEA,WAAOL,YAAP;AACD;;AAEDM,EAAAA,MAAM,CAACC,GAAD,EAAqB;AACzB,UAAMC,KAAK,GAAG,KAAKC,aAAL,CAAmBF,GAAnB,CAAd;AAEA,wBACE,+BAAC,WAAD;AAAM,MAAA,GAAG,EAAEG,yBAAc1B;AAAzB,OAA8BwB,KAAK,CAAC5C,GAAN,CAAU,CAAC;AAAE+C,MAAAA,QAAF;AAAY3C,MAAAA;AAAZ,KAAD,KAAyB,KAAK4C,aAAL,CAAmBD,QAAnB,EAA6B3C,KAA7B,CAAnC,CAA9B,CADF;AAGD;;AAEO4C,EAAAA,aAAa,CAACD,QAAD,EAAW3C,KAAX,EAAkB;AACrC,QAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACM,MAArB,EAA6B,OAAO,IAAP;AAC7B,wBACE,+BAAC,WAAD;AAAM,MAAA,GAAG,EAAEqC;AAAX,oBACE,+BAAC,WAAD;AAAM,MAAA,SAAS,MAAf;AAAgB,MAAA,KAAK,EAAC;AAAtB,OACGA,QADH,UADF,eAIE,+BAAC,cAAD,OAJF,eAKE,+BAAC,WAAD;AAAM,MAAA,KAAK,EAAC;AAAZ,iBAA0B3C,KAAK,CAACM,MAAhC,gEALF,eAME,+BAAC,cAAD,OANF,EAOGN,KAAK,CAACJ,GAAN,CAAU,CAACiD,IAAD,EAAOC,KAAP,kBACT,+BAAC,WAAD;AAAM,MAAA,GAAG,EAAEA;AAAX,oBACE,+BAAC,WAAD,QACGA,KAAK,GAAG,CADX,QACgBD,IADhB,CADF,eAIE,+BAAC,cAAD,OAJF,CADD,CAPH,eAeE,+BAAC,cAAD,OAfF,CADF;AAmBD;;AAEDJ,EAAAA,aAAa,CAACF,GAAD,EAAqB;AAChC;AACA,UAAMvC,KAAK,GAAGyB,MAAM,CAACsB,IAAP,CAAYpE,SAAZ,EAAuBiB,GAAvB,CAA4BoD,YAAD,IAAqC;AAC5E,YAAMjD,UAAU,GAAG,KAAKkD,uBAAL,CAA6BV,GAA7B,EAAkCS,YAAlC,CAAnB;AACA,aAAO;AAAEL,QAAAA,QAAQ,EAAEhE,SAAS,CAACqE,YAAD,CAArB;AAAqChD,QAAAA,KAAK,EAAED;AAA5C,OAAP;AACD,KAHa,CAAd;AAIA,WAAOC,KAAP;AACD;;AAEOiD,EAAAA,uBAAuB,CAACV,GAAD,EAAqBS,YAArB,EAAgE;AAC7F,UAAMjD,UAAU,GAAG,kDAAuB,KAAKZ,QAA5B,EAAsC,CAACoD,GAAD,CAAtC,EAA6CS,YAA7C,EAA2DpD,GAA3D,CAA+D,CAAC;AAAEiD,MAAAA;AAAF,KAAD,KAChFK,6BAAgBC,WAAhB,CAA4BN,IAA5B,CADiB,CAAnB;AAGA,WAAO9C,UAAP;AACD;;AAEDqD,EAAAA,mBAAmB,CAACb,GAAD,EAAqB;AACtC,WAAO,KAAKU,uBAAL,CAA6BV,GAA7B,EAAkC,KAAKnD,aAAvC,CAAP;AACD;;AAnIuF","sourcesContent":["import { EnvDefinition, EnvService, ExecutionContext } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, 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 tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\ntype PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: string,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await Promise.all(\n envsExecutionContext.map(async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", seeders total: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n dev: options.dev,\n });\n envsBuildContext[executionContext.id] = buildContext;\n })\n );\n const buildPipe = BuildPipe.from(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["builder.service.tsx"],"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","Promise","all","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","dev","buildPipe","BuildPipe","from","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","pipeName","renderOnePipe","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"mappings":"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","sourcesContent":["import { EnvDefinition, EnvService, ExecutionContext } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\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, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\ntype PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: string,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await Promise.all(\n envsExecutionContext.map(async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n dev: options.dev,\n });\n envsBuildContext[executionContext.id] = buildContext;\n })\n );\n const buildPipe = BuildPipe.from(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"]}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/builder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.651",
|
|
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.
|
|
9
|
+
"version": "0.0.651"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
"globby": "11.0.1",
|
|
23
23
|
"@babel/runtime": "7.12.18",
|
|
24
24
|
"core-js": "^3.0.0",
|
|
25
|
-
"@teambit/component": "0.0.
|
|
26
|
-
"@teambit/envs": "0.0.
|
|
27
|
-
"@teambit/logger": "0.0.
|
|
28
|
-
"@teambit/tester": "0.0.
|
|
29
|
-
"@teambit/isolator": "0.0.
|
|
30
|
-
"@teambit/cli": "0.0.
|
|
31
|
-
"@teambit/workspace": "0.0.
|
|
32
|
-
"@teambit/aspect-loader": "0.0.
|
|
33
|
-
"@teambit/generator": "0.0.
|
|
34
|
-
"@teambit/graphql": "0.0.
|
|
35
|
-
"@teambit/scope": "0.0.
|
|
25
|
+
"@teambit/component": "0.0.651",
|
|
26
|
+
"@teambit/envs": "0.0.651",
|
|
27
|
+
"@teambit/logger": "0.0.535",
|
|
28
|
+
"@teambit/tester": "0.0.651",
|
|
29
|
+
"@teambit/isolator": "0.0.651",
|
|
30
|
+
"@teambit/cli": "0.0.445",
|
|
31
|
+
"@teambit/workspace": "0.0.651",
|
|
32
|
+
"@teambit/aspect-loader": "0.0.651",
|
|
33
|
+
"@teambit/generator": "0.0.651",
|
|
34
|
+
"@teambit/graphql": "0.0.651",
|
|
35
|
+
"@teambit/scope": "0.0.651",
|
|
36
36
|
"@teambit/bit-error": "0.0.394",
|
|
37
37
|
"@teambit/component-id": "0.0.401"
|
|
38
38
|
},
|
|
@@ -41,15 +41,15 @@
|
|
|
41
41
|
"@types/react": "^17.0.8",
|
|
42
42
|
"@types/fs-extra": "9.0.7",
|
|
43
43
|
"@types/minimatch": "3.0.4",
|
|
44
|
-
"@types/mocha": "
|
|
44
|
+
"@types/mocha": "9.1.0",
|
|
45
45
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
46
46
|
"@types/jest": "^26.0.0",
|
|
47
47
|
"@types/react-dom": "^17.0.5",
|
|
48
48
|
"@types/node": "12.20.4",
|
|
49
|
-
"@teambit/pipelines.aspect-docs.builder": "0.0.
|
|
49
|
+
"@teambit/pipelines.aspect-docs.builder": "0.0.132"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@teambit/legacy": "1.0.
|
|
52
|
+
"@teambit/legacy": "1.0.223",
|
|
53
53
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
54
54
|
"react": "^16.8.0 || ^17.0.0"
|
|
55
55
|
},
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@teambit/legacy": "-",
|
|
70
|
-
"@types/mocha": "
|
|
70
|
+
"@types/mocha": "9.1.0",
|
|
71
71
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
72
72
|
"@types/jest": "^26.0.0",
|
|
73
73
|
"@types/react-dom": "^17.0.5",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"react": "-"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
|
-
"@teambit/legacy": "1.0.
|
|
80
|
+
"@teambit/legacy": "1.0.223",
|
|
81
81
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
82
82
|
"react": "^16.8.0 || ^17.0.0"
|
|
83
83
|
}
|
|
Binary file
|