@teambit/builder 0.0.1083 → 0.0.1085
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/builder.service.tsx +8 -4
- package/dist/builder.main.runtime.d.ts +7 -3
- package/dist/builder.main.runtime.js +31 -6
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/builder.service.d.ts +1 -0
- package/dist/builder.service.js +7 -4
- package/dist/builder.service.js.map +1 -1
- package/dist/{preview-1687231140262.js → preview-1687418355028.js} +2 -2
- package/package-tar/teambit-builder-0.0.1085.tgz +0 -0
- package/package.json +19 -18
- package/package-tar/teambit-builder-0.0.1083.tgz +0 -0
package/builder.service.tsx
CHANGED
|
@@ -29,6 +29,7 @@ export type BuilderServiceOptions = {
|
|
|
29
29
|
previousTasksResults?: TaskResults[];
|
|
30
30
|
dev?: boolean;
|
|
31
31
|
exitOnFirstFailedTask?: boolean;
|
|
32
|
+
capsulesBaseDir?: string;
|
|
32
33
|
};
|
|
33
34
|
|
|
34
35
|
type BuilderTransformationMap = ServiceTransformationMap & {
|
|
@@ -100,16 +101,19 @@ export class BuilderService implements EnvService<BuildServiceResults, BuilderDe
|
|
|
100
101
|
const longProcessLogger = this.logger.createLongProcessLogger(title);
|
|
101
102
|
this.logger.consoleTitle(title);
|
|
102
103
|
const envsBuildContext: EnvsBuildContext = {};
|
|
104
|
+
const isolateOpts = {
|
|
105
|
+
baseDir: options.capsulesBaseDir,
|
|
106
|
+
useHash: !options.capsulesBaseDir,
|
|
107
|
+
getExistingAsIs: true,
|
|
108
|
+
seedersOnly: options.seedersOnly,
|
|
109
|
+
};
|
|
103
110
|
await pMapSeries(envsExecutionContext, async (executionContext) => {
|
|
104
111
|
const componentIds = executionContext.components.map((component) => component.id);
|
|
105
112
|
const { originalSeeders } = options;
|
|
106
113
|
const originalSeedersOfThisEnv = componentIds.filter((compId) =>
|
|
107
114
|
originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true
|
|
108
115
|
);
|
|
109
|
-
const capsuleNetwork = await this.isolator.isolateComponents(componentIds,
|
|
110
|
-
getExistingAsIs: true,
|
|
111
|
-
seedersOnly: options.seedersOnly,
|
|
112
|
-
});
|
|
116
|
+
const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOpts);
|
|
113
117
|
capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;
|
|
114
118
|
this.logger.console(
|
|
115
119
|
`generated graph for env "${executionContext.id}", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`
|
|
@@ -6,6 +6,7 @@ import { Component, ComponentMap, IComponent, ComponentMain, ComponentID } from
|
|
|
6
6
|
import { EnvsMain } from '@teambit/envs';
|
|
7
7
|
import { GraphqlMain } from '@teambit/graphql';
|
|
8
8
|
import { SlotRegistry } from '@teambit/harmony';
|
|
9
|
+
import { GlobalConfigMain } from '@teambit/global-config';
|
|
9
10
|
import { LoggerMain } from '@teambit/logger';
|
|
10
11
|
import { ScopeMain } from '@teambit/scope';
|
|
11
12
|
import { Workspace } from '@teambit/workspace';
|
|
@@ -57,10 +58,11 @@ export declare class BuilderMain {
|
|
|
57
58
|
private isolator;
|
|
58
59
|
private aspectLoader;
|
|
59
60
|
private componentAspect;
|
|
61
|
+
private globalConfig;
|
|
60
62
|
private buildTaskSlot;
|
|
61
63
|
private tagTaskSlot;
|
|
62
64
|
private snapTaskSlot;
|
|
63
|
-
constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot);
|
|
65
|
+
constructor(envs: EnvsMain, workspace: Workspace, buildService: BuilderService, tagService: BuilderService, snapService: BuilderService, scope: ScopeMain, isolator: IsolatorMain, aspectLoader: AspectLoaderMain, componentAspect: ComponentMain, globalConfig: GlobalConfigMain, buildTaskSlot: TaskSlot, tagTaskSlot: TaskSlot, snapTaskSlot: TaskSlot);
|
|
64
66
|
private storeArtifacts;
|
|
65
67
|
private pipelineResultsToBuilderData;
|
|
66
68
|
tagListener(components: Component[], options?: OnTagOpts, isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<OnTagResults>;
|
|
@@ -77,6 +79,7 @@ export declare class BuilderMain {
|
|
|
77
79
|
getArtifacts(component: IComponent): ArtifactList<Artifact>;
|
|
78
80
|
getBuilderData(component: IComponent): BuilderData | undefined;
|
|
79
81
|
build(components: Component[], isolateOptions?: IsolateComponentsOptions, builderOptions?: BuilderServiceOptions): Promise<TaskResultsList>;
|
|
82
|
+
getComponentsCapsulesBaseDir(): string | undefined;
|
|
80
83
|
runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList>;
|
|
81
84
|
runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList>;
|
|
82
85
|
listTasks(component: Component): {
|
|
@@ -109,7 +112,7 @@ export declare class BuilderMain {
|
|
|
109
112
|
static slots: ((registerFn: () => string) => SlotRegistry<BuildTask>)[];
|
|
110
113
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
111
114
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
112
|
-
static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui]: [
|
|
115
|
+
static provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [
|
|
113
116
|
CLIMain,
|
|
114
117
|
EnvsMain,
|
|
115
118
|
Workspace,
|
|
@@ -120,6 +123,7 @@ export declare class BuilderMain {
|
|
|
120
123
|
GraphqlMain,
|
|
121
124
|
GeneratorMain,
|
|
122
125
|
ComponentMain,
|
|
123
|
-
UiMain
|
|
126
|
+
UiMain,
|
|
127
|
+
GlobalConfigMain
|
|
124
128
|
], config: any, [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]): Promise<BuilderMain>;
|
|
125
129
|
}
|
|
@@ -72,6 +72,20 @@ function _harmony() {
|
|
|
72
72
|
};
|
|
73
73
|
return data;
|
|
74
74
|
}
|
|
75
|
+
function _globalConfig() {
|
|
76
|
+
const data = _interopRequireDefault(require("@teambit/global-config"));
|
|
77
|
+
_globalConfig = function () {
|
|
78
|
+
return data;
|
|
79
|
+
};
|
|
80
|
+
return data;
|
|
81
|
+
}
|
|
82
|
+
function _constants() {
|
|
83
|
+
const data = require("@teambit/legacy/dist/constants");
|
|
84
|
+
_constants = function () {
|
|
85
|
+
return data;
|
|
86
|
+
};
|
|
87
|
+
return data;
|
|
88
|
+
}
|
|
75
89
|
function _logger() {
|
|
76
90
|
const data = require("@teambit/logger");
|
|
77
91
|
_logger = function () {
|
|
@@ -228,7 +242,7 @@ const FILE_PATH_PARAM_DELIM = '~';
|
|
|
228
242
|
*/
|
|
229
243
|
exports.FILE_PATH_PARAM_DELIM = FILE_PATH_PARAM_DELIM;
|
|
230
244
|
class BuilderMain {
|
|
231
|
-
constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, buildTaskSlot, tagTaskSlot, snapTaskSlot) {
|
|
245
|
+
constructor(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, componentAspect, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot) {
|
|
232
246
|
this.envs = envs;
|
|
233
247
|
this.workspace = workspace;
|
|
234
248
|
this.buildService = buildService;
|
|
@@ -238,6 +252,7 @@ class BuilderMain {
|
|
|
238
252
|
this.isolator = isolator;
|
|
239
253
|
this.aspectLoader = aspectLoader;
|
|
240
254
|
this.componentAspect = componentAspect;
|
|
255
|
+
this.globalConfig = globalConfig;
|
|
241
256
|
this.buildTaskSlot = buildTaskSlot;
|
|
242
257
|
this.tagTaskSlot = tagTaskSlot;
|
|
243
258
|
this.snapTaskSlot = snapTaskSlot;
|
|
@@ -421,15 +436,25 @@ class BuilderMain {
|
|
|
421
436
|
}
|
|
422
437
|
async build(components, isolateOptions, builderOptions) {
|
|
423
438
|
const ids = components.map(c => c.id);
|
|
424
|
-
const
|
|
439
|
+
const capsulesBaseDir = this.getComponentsCapsulesBaseDir();
|
|
440
|
+
const baseIsolateOpts = {
|
|
441
|
+
baseDir: capsulesBaseDir,
|
|
442
|
+
useHash: !capsulesBaseDir
|
|
443
|
+
};
|
|
444
|
+
const mergedIsolateOpts = _objectSpread(_objectSpread({}, baseIsolateOpts), isolateOptions);
|
|
445
|
+
const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);
|
|
425
446
|
const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());
|
|
426
447
|
const builderServiceOptions = _objectSpread({
|
|
427
448
|
seedersOnly: isolateOptions === null || isolateOptions === void 0 ? void 0 : isolateOptions.seedersOnly,
|
|
428
|
-
originalSeeders: ids
|
|
449
|
+
originalSeeders: ids,
|
|
450
|
+
capsulesBaseDir
|
|
429
451
|
}, builderOptions || {});
|
|
430
452
|
const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);
|
|
431
453
|
return buildResult;
|
|
432
454
|
}
|
|
455
|
+
getComponentsCapsulesBaseDir() {
|
|
456
|
+
return this.globalConfig.getSync(_constants().CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);
|
|
457
|
+
}
|
|
433
458
|
async runTagTasks(components, builderOptions) {
|
|
434
459
|
const envs = await this.envs.createEnvironment(components);
|
|
435
460
|
const buildResult = await envs.runOnce(this.tagService, builderOptions);
|
|
@@ -491,14 +516,14 @@ class BuilderMain {
|
|
|
491
516
|
getDownloadUrlForArtifact(componentId, taskId, path) {
|
|
492
517
|
return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;
|
|
493
518
|
}
|
|
494
|
-
static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui], config, [buildTaskSlot, tagTaskSlot, snapTaskSlot]) {
|
|
519
|
+
static async provider([cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig], config, [buildTaskSlot, tagTaskSlot, snapTaskSlot]) {
|
|
495
520
|
const artifactFactory = new (_artifactFactory().ArtifactFactory)();
|
|
496
521
|
const logger = loggerExt.createLogger(_builder().BuilderAspect.id);
|
|
497
522
|
const buildService = new (_builder3().BuilderService)(isolator, logger, buildTaskSlot, 'getBuildPipe', 'build', artifactFactory, scope);
|
|
498
523
|
envs.registerService(buildService);
|
|
499
524
|
const tagService = new (_builder3().BuilderService)(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);
|
|
500
525
|
const snapService = new (_builder3().BuilderService)(isolator, logger, snapTaskSlot, 'getSnapPipe', 'snap', artifactFactory, scope);
|
|
501
|
-
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, buildTaskSlot, tagTaskSlot, snapTaskSlot);
|
|
526
|
+
const builder = new BuilderMain(envs, workspace, buildService, tagService, snapService, scope, isolator, aspectLoader, component, globalConfig, buildTaskSlot, tagTaskSlot, snapTaskSlot);
|
|
502
527
|
builder.registerBuildTasks([new (_ui().BundleUiTask)(ui, logger)]);
|
|
503
528
|
component.registerRoute([new (_builder4().BuilderRoute)(builder, scope, logger)]);
|
|
504
529
|
graphql.register((0, _builder2().builderSchema)(builder, logger));
|
|
@@ -511,7 +536,7 @@ class BuilderMain {
|
|
|
511
536
|
exports.BuilderMain = BuilderMain;
|
|
512
537
|
(0, _defineProperty2().default)(BuilderMain, "slots", [_harmony().Slot.withType(), _harmony().Slot.withType(), _harmony().Slot.withType()]);
|
|
513
538
|
(0, _defineProperty2().default)(BuilderMain, "runtime", _cli().MainRuntime);
|
|
514
|
-
(0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect, _component().ComponentAspect, _ui().UIAspect]);
|
|
539
|
+
(0, _defineProperty2().default)(BuilderMain, "dependencies", [_cli().CLIAspect, _envs().EnvsAspect, _workspace().WorkspaceAspect, _scope().ScopeAspect, _isolator().IsolatorAspect, _logger().LoggerAspect, _aspectLoader().AspectLoaderAspect, _graphql().GraphqlAspect, _generator().GeneratorAspect, _component().ComponentAspect, _ui().UIAspect, _globalConfig().default]);
|
|
515
540
|
_builder().BuilderAspect.addRuntime(BuilderMain);
|
|
516
541
|
|
|
517
542
|
//# sourceMappingURL=builder.main.runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FILE_PATH_PARAM_DELIM","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","getArtifactsDataOfComponent","pipeline","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","skipBuildPipeline","populateArtifactsFromParent","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","push","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFromParent","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","promises","builderData","idStr","parents","head","parent","parentComp","getHost","get","changeVersion","parentBuilderData","getBuilderData","artifact","artifactObj","toObject","find","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","data","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","Object","assign","fromArtifactObject","ids","c","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","buildResult","runOnce","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent, ComponentAspect, ComponentMain, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport AspectAspect from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n skipBuildPipeline?: boolean; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n combineBuildDataFromParent?: boolean; // helpful for tagging from scope where we want to save the build-data of parent snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList<FsArtifact>>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<RawBuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<RawBuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts, aspectsData, bitVersion: getHarmonyVersion(true) };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {},\n builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, skipBuildPipeline } = options;\n if (options.skipBuildPipeline) isolateOptions.populateArtifactsFromParent = true;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: skipBuildPipeline ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (options.combineBuildDataFromParent) await this.combineBuildDataFromParent(builderDataMap);\n this.validateBuilderDataMap(builderDataMap);\n\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<RawBuilderData>) {\n builderDataMap.forEach((buildData: RawBuilderData, component) => {\n const taskSerializedIds = buildData.pipeline.map((t) =>\n BuildTaskHelper.serializeId({ aspectId: t.taskId, name: t.taskName })\n );\n const duplications = findDuplications(taskSerializedIds);\n if (duplications.length) {\n throw new Error(\n `build-task-results validation has failed. the following task(s) of \"${component.id.toString()}\" are duplicated: ${duplications.join(\n ', '\n )}`\n );\n }\n });\n }\n\n private async combineBuildDataFromParent(builderDataMap: ComponentMap<RawBuilderData>) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const idStr = component.id.toString();\n const parents = component.head?.parents;\n if (!parents || parents.length !== 1) {\n throw new Error(`expect parents of ${idStr} to be 1, got ${parents?.length || 'none'}`);\n }\n const parent = parents[0];\n const parentComp = await this.componentAspect.getHost().get(component.id.changeVersion(parent.toString()));\n if (!parentComp) throw new Error(`unable to load parent component of ${idStr}. hash: ${parent}`);\n const parentBuilderData = this.getBuilderData(parentComp);\n if (!parentBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n parentBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find((a) => a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name)\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n parentBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n parentBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n getDataByAspect(component: IComponent, aspectName: string): Serializable | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const network = await this.isolator.isolateComponents(ids, isolateOptions, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n ...(builderOptions || {}),\n };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["FILE_PATH_PARAM_DELIM","BuilderMain","constructor","envs","workspace","buildService","tagService","snapService","scope","isolator","aspectLoader","componentAspect","globalConfig","buildTaskSlot","tagTaskSlot","snapTaskSlot","storeArtifacts","tasksResults","artifacts","flatMap","t","storeP","map","artifactMap","Promise","all","toArray","component","artifactList","store","err","ArtifactStorageError","pipelineResultsToBuilderData","components","buildPipelineResults","buildPipelineResultList","BuildPipelineResultList","ComponentMap","as","aspectsData","getDataOfComponent","id","pipelineReport","getPipelineReportOfComponent","getArtifactsDataOfComponent","pipeline","bitVersion","getHarmonyVersion","tagListener","options","isolateOptions","builderOptions","pipeResults","allTasksResults","throwOnError","forceDeploy","disableTagAndSnapPipelines","isSnap","skipBuildPipeline","populateArtifactsFromParent","buildEnvsExecutionResults","build","emptyRootDir","tasks","AspectAspect","undefined","throwErrorsIfExist","push","hasErrors","builderOptionsForTagSnap","seedersOnly","previousTasksResults","deployEnvsExecutionResults","runSnapTasks","runTagTasks","builderDataMap","combineBuildDataFromParent","validateBuilderDataMap","forEach","buildData","taskSerializedIds","BuildTaskHelper","serializeId","aspectId","taskId","name","taskName","duplications","findDuplications","length","Error","toString","join","promises","builderData","idStr","parents","head","parent","parentComp","getHost","get","changeVersion","parentBuilderData","getBuilderData","artifact","artifactObj","toObject","find","a","task","aspectData","p","flattenValue","getArtifactsVinylByAspect","aspectName","getArtifactsByAspect","vinyls","getVinylsAndImportIfMissing","_legacy","legacyScope","getArtifactsVinylByAspectAndName","getArtifactsByAspectAndName","getArtifactsVinylByAspectAndTaskName","getArtifactsbyAspectAndTaskName","getArtifactsByName","getArtifacts","byAspectNameAndName","byAspectNameAndTaskName","getDataByAspect","data","ArtifactList","fromArray","BuilderAspect","clonedData","cloneDeep","artifactFiles","files","ArtifactFiles","fromObject","Artifact","Object","assign","fromArtifactObject","ids","c","capsulesBaseDir","getComponentsCapsulesBaseDir","baseIsolateOpts","baseDir","useHash","mergedIsolateOpts","network","isolateComponents","createEnvironment","graphCapsules","getAllComponents","builderServiceOptions","originalSeeders","buildResult","runOnce","getSync","CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR","listTasks","compEnv","getEnv","buildTasks","getCurrentPipeTasks","tagTasks","snapTasks","envId","registerBuildTasks","register","registerDeployTasks","registerTagTasks","registerSnapTasks","getDownloadUrlForArtifact","componentId","path","provider","cli","loggerExt","graphql","generator","ui","config","artifactFactory","ArtifactFactory","logger","createLogger","BuilderService","registerService","builder","BundleUiTask","registerRoute","BuilderRoute","builderSchema","registerComponentTemplate","buildTaskTemplate","commands","BuilderCmd","ArtifactsCmd","Slot","withType","MainRuntime","CLIAspect","EnvsAspect","WorkspaceAspect","ScopeAspect","IsolatorAspect","LoggerAspect","AspectLoaderAspect","GraphqlAspect","GeneratorAspect","ComponentAspect","UIAspect","GlobalConfigAspect","addRuntime"],"sources":["builder.main.runtime.ts"],"sourcesContent":["import { cloneDeep } from 'lodash';\nimport { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';\nimport { ArtifactFiles, ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { AspectLoaderAspect, AspectLoaderMain } from '@teambit/aspect-loader';\nimport { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { Component, ComponentMap, IComponent, ComponentAspect, ComponentMain, ComponentID } from '@teambit/component';\nimport { EnvsAspect, EnvsMain } from '@teambit/envs';\nimport { GraphqlAspect, GraphqlMain } from '@teambit/graphql';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport GlobalConfigAspect, { GlobalConfigMain } from '@teambit/global-config';\nimport { CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR } from '@teambit/legacy/dist/constants';\nimport { LoggerAspect, LoggerMain } from '@teambit/logger';\nimport AspectAspect from '@teambit/aspect';\nimport { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { IsolateComponentsOptions, IsolatorAspect, IsolatorMain } from '@teambit/isolator';\nimport { getHarmonyVersion } from '@teambit/legacy/dist/bootstrap';\nimport findDuplications from '@teambit/legacy/dist/utils/array/find-duplications';\nimport { GeneratorAspect, GeneratorMain } from '@teambit/generator';\nimport { UIAspect, UiMain, BundleUiTask } from '@teambit/ui';\nimport { Artifact, ArtifactList, FsArtifact } from './artifact';\nimport { ArtifactFactory } from './artifact/artifact-factory'; // it gets undefined when importing it from './artifact'\nimport { BuilderAspect } from './builder.aspect';\nimport { builderSchema } from './builder.graphql';\nimport { BuilderService, BuilderServiceOptions } from './builder.service';\nimport { BuilderCmd } from './build.cmd';\nimport { BuildTask, BuildTaskHelper } from './build-task';\nimport { TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { ArtifactStorageError } from './exceptions';\nimport { BuildPipelineResultList, AspectData, PipelineReport } from './build-pipeline-result-list';\nimport { Serializable } from './types';\nimport { ArtifactsCmd } from './artifact/artifacts.cmd';\nimport { buildTaskTemplate } from './templates/build-task';\nimport { BuilderRoute } from './builder.route';\n\nexport type TaskSlot = SlotRegistry<BuildTask[]>;\nexport type OnTagResults = { builderDataMap: ComponentMap<RawBuilderData>; pipeResults: TaskResultsList[] };\nexport type OnTagOpts = {\n disableTagAndSnapPipelines?: boolean;\n throwOnError?: boolean; // on the CI it helps to save the results on failure so this is set to false\n forceDeploy?: boolean; // whether run the deploy-pipeline although the build-pipeline has failed\n skipBuildPipeline?: boolean; // helpful for tagging from scope where we want to use the build-artifacts of previous snap.\n combineBuildDataFromParent?: boolean; // helpful for tagging from scope where we want to save the build-data of parent snap.\n isSnap?: boolean;\n};\nexport const FILE_PATH_PARAM_DELIM = '~';\n\n/**\n * builder data format for the bit object store\n */\nexport type RawBuilderData = {\n pipeline: PipelineReport[];\n artifacts?: ArtifactObject[];\n aspectsData: AspectData[];\n bitVersion?: string;\n};\n/**\n * builder data mapped to an ArtifactList instance\n */\nexport type BuilderData = Omit<RawBuilderData, 'artifacts'> & {\n artifacts: ArtifactList<Artifact>;\n};\n\nexport class BuilderMain {\n constructor(\n private envs: EnvsMain,\n private workspace: Workspace,\n private buildService: BuilderService,\n private tagService: BuilderService,\n private snapService: BuilderService,\n private scope: ScopeMain,\n private isolator: IsolatorMain,\n private aspectLoader: AspectLoaderMain,\n private componentAspect: ComponentMain,\n private globalConfig: GlobalConfigMain,\n private buildTaskSlot: TaskSlot,\n private tagTaskSlot: TaskSlot,\n private snapTaskSlot: TaskSlot\n ) {}\n\n private async storeArtifacts(tasksResults: TaskResults[]) {\n const artifacts = tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n const storeP = artifacts.map(async (artifactMap: ComponentMap<ArtifactList<FsArtifact>>) => {\n return Promise.all(\n artifactMap.toArray().map(async ([component, artifactList]) => {\n try {\n return await artifactList.store(component);\n } catch (err: any) {\n throw new ArtifactStorageError(err, component);\n }\n })\n );\n });\n await Promise.all(storeP);\n }\n\n private pipelineResultsToBuilderData(\n components: Component[],\n buildPipelineResults: TaskResults[]\n ): ComponentMap<RawBuilderData> {\n const buildPipelineResultList = new BuildPipelineResultList(buildPipelineResults, components);\n return ComponentMap.as<RawBuilderData>(components, (component) => {\n const aspectsData = buildPipelineResultList.getDataOfComponent(component.id);\n const pipelineReport = buildPipelineResultList.getPipelineReportOfComponent(component.id);\n const artifacts = buildPipelineResultList.getArtifactsDataOfComponent(component.id);\n return { pipeline: pipelineReport, artifacts, aspectsData, bitVersion: getHarmonyVersion(true) };\n });\n }\n\n async tagListener(\n components: Component[],\n options: OnTagOpts = {},\n isolateOptions: IsolateComponentsOptions = {},\n builderOptions: BuilderServiceOptions = {}\n ): Promise<OnTagResults> {\n const pipeResults: TaskResultsList[] = [];\n const allTasksResults: TaskResults[] = [];\n const { throwOnError, forceDeploy, disableTagAndSnapPipelines, isSnap, skipBuildPipeline } = options;\n if (options.skipBuildPipeline) isolateOptions.populateArtifactsFromParent = true;\n const buildEnvsExecutionResults = await this.build(\n components,\n { emptyRootDir: true, ...isolateOptions },\n {\n ...builderOptions,\n // even when build is skipped (in case of tag-from-scope), the pre-build/post-build and teambit.harmony/aspect tasks are needed\n tasks: skipBuildPipeline ? [AspectAspect.id] : undefined,\n }\n );\n if (throwOnError && !forceDeploy) buildEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...buildEnvsExecutionResults.tasksResults);\n pipeResults.push(buildEnvsExecutionResults);\n\n if (forceDeploy || (!disableTagAndSnapPipelines && !buildEnvsExecutionResults?.hasErrors())) {\n const builderOptionsForTagSnap: BuilderServiceOptions = {\n ...builderOptions,\n seedersOnly: isolateOptions.seedersOnly,\n previousTasksResults: buildEnvsExecutionResults?.tasksResults,\n };\n const deployEnvsExecutionResults = isSnap\n ? await this.runSnapTasks(components, builderOptionsForTagSnap)\n : await this.runTagTasks(components, builderOptionsForTagSnap);\n if (throwOnError && !forceDeploy) deployEnvsExecutionResults.throwErrorsIfExist();\n allTasksResults.push(...deployEnvsExecutionResults.tasksResults);\n pipeResults.push(deployEnvsExecutionResults);\n }\n await this.storeArtifacts(allTasksResults);\n const builderDataMap = this.pipelineResultsToBuilderData(components, allTasksResults);\n if (options.combineBuildDataFromParent) await this.combineBuildDataFromParent(builderDataMap);\n this.validateBuilderDataMap(builderDataMap);\n\n return { builderDataMap, pipeResults };\n }\n\n private validateBuilderDataMap(builderDataMap: ComponentMap<RawBuilderData>) {\n builderDataMap.forEach((buildData: RawBuilderData, component) => {\n const taskSerializedIds = buildData.pipeline.map((t) =>\n BuildTaskHelper.serializeId({ aspectId: t.taskId, name: t.taskName })\n );\n const duplications = findDuplications(taskSerializedIds);\n if (duplications.length) {\n throw new Error(\n `build-task-results validation has failed. the following task(s) of \"${component.id.toString()}\" are duplicated: ${duplications.join(\n ', '\n )}`\n );\n }\n });\n }\n\n private async combineBuildDataFromParent(builderDataMap: ComponentMap<RawBuilderData>) {\n const promises = builderDataMap.map(async (builderData, component) => {\n const idStr = component.id.toString();\n const parents = component.head?.parents;\n if (!parents || parents.length !== 1) {\n throw new Error(`expect parents of ${idStr} to be 1, got ${parents?.length || 'none'}`);\n }\n const parent = parents[0];\n const parentComp = await this.componentAspect.getHost().get(component.id.changeVersion(parent.toString()));\n if (!parentComp) throw new Error(`unable to load parent component of ${idStr}. hash: ${parent}`);\n const parentBuilderData = this.getBuilderData(parentComp);\n if (!parentBuilderData) throw new Error(`parent of ${idStr} was not built yet. unable to continue`);\n parentBuilderData.artifacts.forEach((artifact) => {\n const artifactObj = artifact.toObject();\n if (!builderData.artifacts) builderData.artifacts = [];\n if (\n builderData.artifacts.find((a) => a.task.id === artifactObj.task.id && a.task.name === artifactObj.task.name)\n ) {\n return;\n }\n builderData.artifacts.push(artifactObj);\n });\n parentBuilderData.aspectsData.forEach((aspectData) => {\n if (builderData.aspectsData.find((a) => a.aspectId === aspectData.aspectId)) return;\n builderData.aspectsData.push(aspectData);\n });\n parentBuilderData.pipeline.forEach((pipeline) => {\n if (builderData.pipeline.find((p) => p.taskId === pipeline.taskId && p.taskName === pipeline.taskName)) return;\n builderData.pipeline.push(pipeline);\n });\n });\n\n await Promise.all(promises.flattenValue());\n }\n\n // TODO: merge with getArtifactsVinylByExtensionAndName by getting aspect name and name as object with optional props\n async getArtifactsVinylByAspect(component: Component, aspectName: string): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspect(component, aspectName);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsByAspectAndName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n async getArtifactsVinylByAspectAndTaskName(\n component: Component,\n aspectName: string,\n name: string\n ): Promise<ArtifactVinyl[]> {\n const artifacts = this.getArtifactsbyAspectAndTaskName(component, aspectName, name);\n const vinyls = await artifacts.getVinylsAndImportIfMissing(component.id._legacy, this.scope.legacyScope);\n return vinyls;\n }\n\n getArtifactsByName(component: Component, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(undefined, name);\n return artifacts;\n }\n\n getArtifactsByAspect(component: Component, aspectName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName);\n return artifacts;\n }\n\n getArtifactsByAspectAndName(component: Component, aspectName: string, name: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndName(aspectName, name);\n return artifacts;\n }\n\n getArtifactsbyAspectAndTaskName(component: IComponent, aspectName: string, taskName: string): ArtifactList<Artifact> {\n const artifacts = this.getArtifacts(component).byAspectNameAndTaskName(aspectName, taskName);\n return artifacts;\n }\n\n getDataByAspect(component: IComponent, aspectName: string): Serializable | undefined {\n const aspectsData = this.getBuilderData(component)?.aspectsData;\n const data = aspectsData?.find((aspectData) => aspectData.aspectId === aspectName);\n return data?.data;\n }\n\n getArtifacts(component: IComponent): ArtifactList<Artifact> {\n const artifacts = this.getBuilderData(component)?.artifacts || ArtifactList.fromArray([]);\n return artifacts;\n }\n\n getBuilderData(component: IComponent): BuilderData | undefined {\n const data = component.get(BuilderAspect.id)?.data;\n if (!data) return undefined;\n const clonedData = cloneDeep(data) as BuilderData;\n let artifactFiles: ArtifactFiles;\n const artifacts = clonedData.artifacts?.map((artifact) => {\n if (!(artifact.files instanceof ArtifactFiles)) {\n artifactFiles = ArtifactFiles.fromObject(artifact.files);\n } else {\n artifactFiles = artifact.files;\n }\n if (artifact instanceof Artifact) {\n return artifact;\n }\n Object.assign(artifact, { files: artifactFiles });\n return Artifact.fromArtifactObject(artifact);\n });\n clonedData.artifacts = ArtifactList.fromArray(artifacts || []);\n return clonedData;\n }\n\n async build(\n components: Component[],\n isolateOptions?: IsolateComponentsOptions,\n builderOptions?: BuilderServiceOptions\n ): Promise<TaskResultsList> {\n const ids = components.map((c) => c.id);\n const capsulesBaseDir = this.getComponentsCapsulesBaseDir();\n const baseIsolateOpts = {\n baseDir: capsulesBaseDir,\n useHash: !capsulesBaseDir,\n };\n const mergedIsolateOpts = {\n ...baseIsolateOpts,\n ...isolateOptions,\n };\n\n const network = await this.isolator.isolateComponents(ids, mergedIsolateOpts, this.scope.legacyScope);\n const envs = await this.envs.createEnvironment(network.graphCapsules.getAllComponents());\n const builderServiceOptions = {\n seedersOnly: isolateOptions?.seedersOnly,\n originalSeeders: ids,\n capsulesBaseDir,\n ...(builderOptions || {}),\n };\n const buildResult = await envs.runOnce(this.buildService, builderServiceOptions);\n return buildResult;\n }\n\n getComponentsCapsulesBaseDir(): string | undefined {\n return this.globalConfig.getSync(CFG_CAPSULES_BUILD_COMPONENTS_BASE_DIR);\n }\n\n async runTagTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.tagService, builderOptions);\n\n return buildResult;\n }\n\n async runSnapTasks(components: Component[], builderOptions: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = await this.envs.createEnvironment(components);\n const buildResult = await envs.runOnce(this.snapService, builderOptions);\n\n return buildResult;\n }\n\n listTasks(component: Component) {\n const compEnv = this.envs.getEnv(component);\n const buildTasks = this.buildService.getCurrentPipeTasks(compEnv);\n const tagTasks = this.tagService.getCurrentPipeTasks(compEnv);\n const snapTasks = this.snapService.getCurrentPipeTasks(compEnv);\n return { id: component.id, envId: compEnv.id, buildTasks, tagTasks, snapTasks };\n }\n\n /**\n * register a build task to apply on all component build pipelines.\n * build happens on `bit build` and as part of `bit tag --persist`.\n */\n registerBuildTasks(tasks: BuildTask[]) {\n this.buildTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * @deprecated use registerTagTasks or registerSnapTasks\n */\n registerDeployTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit tag'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerTagTasks(tasks: BuildTask[]) {\n this.tagTaskSlot.register(tasks);\n return this;\n }\n\n /**\n * tag tasks that don't get executed on `bit build`, only on `bit snap'.\n * this pipeline is running once the build-pipeline has completed.\n */\n registerSnapTasks(tasks: BuildTask[]) {\n this.snapTaskSlot.register(tasks);\n return this;\n }\n\n getDownloadUrlForArtifact(componentId: ComponentID, taskId: string, path?: string) {\n return `/api/${componentId}/~aspect/builder/${taskId}/${path ? `${FILE_PATH_PARAM_DELIM}${path}` : ''}`;\n }\n\n static slots = [Slot.withType<BuildTask>(), Slot.withType<BuildTask>(), Slot.withType<BuildTask>()];\n\n static runtime = MainRuntime;\n static dependencies = [\n CLIAspect,\n EnvsAspect,\n WorkspaceAspect,\n ScopeAspect,\n IsolatorAspect,\n LoggerAspect,\n AspectLoaderAspect,\n GraphqlAspect,\n GeneratorAspect,\n ComponentAspect,\n UIAspect,\n GlobalConfigAspect,\n ];\n\n static async provider(\n [cli, envs, workspace, scope, isolator, loggerExt, aspectLoader, graphql, generator, component, ui, globalConfig]: [\n CLIMain,\n EnvsMain,\n Workspace,\n ScopeMain,\n IsolatorMain,\n LoggerMain,\n AspectLoaderMain,\n GraphqlMain,\n GeneratorMain,\n ComponentMain,\n UiMain,\n GlobalConfigMain\n ],\n config,\n [buildTaskSlot, tagTaskSlot, snapTaskSlot]: [TaskSlot, TaskSlot, TaskSlot]\n ) {\n const artifactFactory = new ArtifactFactory();\n const logger = loggerExt.createLogger(BuilderAspect.id);\n const buildService = new BuilderService(\n isolator,\n logger,\n buildTaskSlot,\n 'getBuildPipe',\n 'build',\n artifactFactory,\n scope\n );\n envs.registerService(buildService);\n const tagService = new BuilderService(isolator, logger, tagTaskSlot, 'getTagPipe', 'tag', artifactFactory, scope);\n const snapService = new BuilderService(\n isolator,\n logger,\n snapTaskSlot,\n 'getSnapPipe',\n 'snap',\n artifactFactory,\n scope\n );\n const builder = new BuilderMain(\n envs,\n workspace,\n buildService,\n tagService,\n snapService,\n scope,\n isolator,\n aspectLoader,\n component,\n globalConfig,\n buildTaskSlot,\n tagTaskSlot,\n snapTaskSlot\n );\n builder.registerBuildTasks([new BundleUiTask(ui, logger)]);\n component.registerRoute([new BuilderRoute(builder, scope, logger)]);\n graphql.register(builderSchema(builder, logger));\n if (generator) generator.registerComponentTemplate([buildTaskTemplate]);\n const commands = [new BuilderCmd(builder, workspace, logger), new ArtifactsCmd(builder, component)];\n cli.register(...commands);\n\n return builder;\n }\n}\n\nBuilderAspect.addRuntime(BuilderMain);\n"],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ export declare type BuilderServiceOptions = {
|
|
|
23
23
|
previousTasksResults?: TaskResults[];
|
|
24
24
|
dev?: boolean;
|
|
25
25
|
exitOnFirstFailedTask?: boolean;
|
|
26
|
+
capsulesBaseDir?: string;
|
|
26
27
|
};
|
|
27
28
|
declare type BuilderTransformationMap = ServiceTransformationMap & {
|
|
28
29
|
getBuildPipe: () => BuildTask[];
|
package/dist/builder.service.js
CHANGED
|
@@ -111,16 +111,19 @@ class BuilderService {
|
|
|
111
111
|
const longProcessLogger = this.logger.createLongProcessLogger(title);
|
|
112
112
|
this.logger.consoleTitle(title);
|
|
113
113
|
const envsBuildContext = {};
|
|
114
|
+
const isolateOpts = {
|
|
115
|
+
baseDir: options.capsulesBaseDir,
|
|
116
|
+
useHash: !options.capsulesBaseDir,
|
|
117
|
+
getExistingAsIs: true,
|
|
118
|
+
seedersOnly: options.seedersOnly
|
|
119
|
+
};
|
|
114
120
|
await (0, _pMapSeries().default)(envsExecutionContext, async executionContext => {
|
|
115
121
|
const componentIds = executionContext.components.map(component => component.id);
|
|
116
122
|
const {
|
|
117
123
|
originalSeeders
|
|
118
124
|
} = options;
|
|
119
125
|
const originalSeedersOfThisEnv = componentIds.filter(compId => originalSeeders ? originalSeeders.find(seeder => compId.isEqual(seeder)) : true);
|
|
120
|
-
const capsuleNetwork = await this.isolator.isolateComponents(componentIds,
|
|
121
|
-
getExistingAsIs: true,
|
|
122
|
-
seedersOnly: options.seedersOnly
|
|
123
|
-
});
|
|
126
|
+
const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOpts);
|
|
124
127
|
capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;
|
|
125
128
|
this.logger.console(`generated graph for env "${executionContext.id}", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`);
|
|
126
129
|
const buildContext = Object.assign(executionContext, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","getExistingAsIs","seedersOnly","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","exitOnFirstFailedTask","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","renderOnePipe","transform","envContext","build","undefined","pipeline","compute","tag","snap","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"sources":["builder.service.tsx"],"sourcesContent":["import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, {\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n });\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n { exitOnFirstFailedTask: options.exitOnFirstFailedTask }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["pipeNames","getBuildPipe","getTagPipe","getSnapPipe","BuilderService","constructor","isolator","logger","taskSlot","pipeNameOnEnv","displayPipeName","artifactFactory","scope","runOnce","envsExecutionContext","options","envs","map","executionContext","envDefinition","tasksQueue","calculatePipelineOrder","tasks","skipTests","validate","info","toString","title","length","longProcessLogger","createLongProcessLogger","consoleTitle","envsBuildContext","isolateOpts","baseDir","capsulesBaseDir","useHash","getExistingAsIs","seedersOnly","pMapSeries","componentIds","components","component","id","originalSeeders","originalSeedersOfThisEnv","filter","compId","find","seeder","isEqual","capsuleNetwork","isolateComponents","_originalSeeders","console","seedersCapsules","graphCapsules","buildContext","Object","assign","previousTasksResults","pipeName","dev","laneId","legacyScope","currentLaneId","buildPipe","BuildPipe","exitOnFirstFailedTask","buildResults","execute","end","hasErrors","consoleFailure","consoleSuccess","render","env","pipes","getDescriptor","BuilderAspect","renderOnePipe","transform","envContext","build","undefined","pipeline","compute","tag","snap","task","index","keys","pipeFuncName","getTasksNamesByPipeFunc","BuildTaskHelper","serializeId","getCurrentPipeTasks"],"sources":["builder.service.tsx"],"sourcesContent":["import { EnvService, ExecutionContext, EnvDefinition, Env, EnvContext, ServiceTransformationMap } from '@teambit/envs';\nimport React from 'react';\nimport { ScopeMain } from '@teambit/scope';\nimport pMapSeries from 'p-map-series';\nimport { Text, Newline } from 'ink';\nimport { Logger } from '@teambit/logger';\nimport { IsolatorMain } from '@teambit/isolator';\nimport { Component, ComponentID } from '@teambit/component';\nimport { BuildPipe, TaskResults } from './build-pipe';\nimport { TaskResultsList } from './task-results-list';\nimport { TaskSlot } from './builder.main.runtime';\nimport { BuildContext, BuildTask, BuildTaskHelper } from './build-task';\nimport { ArtifactFactory } from './artifact';\nimport { calculatePipelineOrder } from './build-pipeline-order';\nimport { BuilderAspect } from './builder.aspect';\n\nexport type BuildServiceResults = {\n id: string;\n buildResults: TaskResultsList;\n components: Component[];\n errors?: [];\n};\n\nexport type BuilderServiceOptions = {\n seedersOnly?: boolean;\n originalSeeders?: ComponentID[];\n tasks?: string[];\n skipTests?: boolean;\n previousTasksResults?: TaskResults[];\n dev?: boolean;\n exitOnFirstFailedTask?: boolean;\n capsulesBaseDir?: string;\n};\n\ntype BuilderTransformationMap = ServiceTransformationMap & {\n getBuildPipe: () => BuildTask[];\n getTagPipe: () => BuildTask[];\n getSnapPipe: () => BuildTask[];\n};\n\nexport type EnvsBuildContext = { [envId: string]: BuildContext };\n\nconst pipeNames = {\n getBuildPipe: 'build',\n getTagPipe: 'tag',\n getSnapPipe: 'snap',\n};\n\nexport type PipeName = 'build' | 'tag' | 'snap';\n\nexport type BuilderDescriptor = Array<{ pipeName: PipeName; tasks: string[] }>;\n\ntype PipeFunctionNames = keyof typeof pipeNames;\nexport class BuilderService implements EnvService<BuildServiceResults, BuilderDescriptor> {\n name = 'builder';\n\n constructor(\n /**\n * isolator extension.\n */\n private isolator: IsolatorMain,\n\n /**\n * logger extension.\n */\n private logger: Logger,\n\n /**\n * task slot (e.g tasks registered by other extensions.).\n */\n private taskSlot: TaskSlot,\n\n /**\n * a method with such name should be implemented on the env in order to run the pipe tasks.\n */\n private pipeNameOnEnv: PipeFunctionNames,\n\n /**\n * pipe name to display on the console during the execution\n */\n private displayPipeName: PipeName,\n private artifactFactory: ArtifactFactory,\n private scope: ScopeMain\n ) {}\n\n /**\n * runs all tasks for all envs\n */\n async runOnce(envsExecutionContext: ExecutionContext[], options: BuilderServiceOptions): Promise<TaskResultsList> {\n const envs = envsExecutionContext.map((executionContext) => executionContext.envDefinition);\n const tasksQueue = calculatePipelineOrder(\n this.taskSlot,\n envs,\n this.pipeNameOnEnv,\n options.tasks,\n options.skipTests\n );\n tasksQueue.validate();\n this.logger.info(`going to run tasks in the following order:\\n${tasksQueue.toString()}`);\n const title = `running ${this.displayPipeName} pipe for ${envs.length} environments, total ${tasksQueue.length} tasks`;\n const longProcessLogger = this.logger.createLongProcessLogger(title);\n this.logger.consoleTitle(title);\n const envsBuildContext: EnvsBuildContext = {};\n const isolateOpts = {\n baseDir: options.capsulesBaseDir,\n useHash: !options.capsulesBaseDir,\n getExistingAsIs: true,\n seedersOnly: options.seedersOnly,\n };\n await pMapSeries(envsExecutionContext, async (executionContext) => {\n const componentIds = executionContext.components.map((component) => component.id);\n const { originalSeeders } = options;\n const originalSeedersOfThisEnv = componentIds.filter((compId) =>\n originalSeeders ? originalSeeders.find((seeder) => compId.isEqual(seeder)) : true\n );\n const capsuleNetwork = await this.isolator.isolateComponents(componentIds, isolateOpts);\n capsuleNetwork._originalSeeders = originalSeedersOfThisEnv;\n this.logger.console(\n `generated graph for env \"${executionContext.id}\", originalSeedersOfThisEnv: ${originalSeedersOfThisEnv.length}, graphOfThisEnv: ${capsuleNetwork.seedersCapsules.length}, graph total: ${capsuleNetwork.graphCapsules.length}`\n );\n const buildContext = Object.assign(executionContext, {\n capsuleNetwork,\n previousTasksResults: [],\n pipeName: this.displayPipeName,\n dev: options.dev,\n laneId: this.scope.legacyScope.currentLaneId,\n });\n envsBuildContext[executionContext.id] = buildContext;\n });\n const buildPipe = new BuildPipe(\n tasksQueue,\n envsBuildContext,\n this.logger,\n this.artifactFactory,\n options.previousTasksResults,\n { exitOnFirstFailedTask: options.exitOnFirstFailedTask }\n );\n const buildResults = await buildPipe.execute();\n longProcessLogger.end();\n buildResults.hasErrors() ? this.logger.consoleFailure() : this.logger.consoleSuccess();\n\n return buildResults;\n }\n\n render(env: EnvDefinition) {\n const pipes = this.getDescriptor(env);\n\n return (\n <Text key={BuilderAspect.id}>{pipes.map(({ pipeName, tasks }) => this.renderOnePipe(pipeName, tasks))}</Text>\n );\n }\n\n transform(env: Env, envContext: EnvContext): BuilderTransformationMap | undefined {\n if (!env?.build) return undefined;\n return {\n getBuildPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.build();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getTagPipe: () => {\n // TODO: refactor after defining for an env property\n const pipeline = env.tag();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n getSnapPipe: () => {\n const pipeline = env.snap();\n if (!pipeline || !pipeline.compute) return [];\n return pipeline?.compute(envContext);\n },\n };\n }\n\n private renderOnePipe(pipeName, tasks) {\n if (!tasks || !tasks.length) return null;\n return (\n <Text key={pipeName}>\n <Text underline color=\"green\">\n {pipeName} pipe\n </Text>\n <Newline />\n <Text color=\"cyan\">total {tasks.length} tasks are configured to be executed in the following order</Text>\n <Newline />\n {tasks.map((task, index) => (\n <Text key={index}>\n <Text>\n {index + 1}. {task}\n </Text>\n <Newline />\n </Text>\n ))}\n <Newline />\n </Text>\n );\n }\n\n getDescriptor(env: EnvDefinition) {\n // @ts-ignore\n const tasks = Object.keys(pipeNames).map((pipeFuncName: PipeFunctionNames) => {\n const tasksQueue = this.getTasksNamesByPipeFunc(env, pipeFuncName);\n return { pipeName: pipeNames[pipeFuncName], tasks: tasksQueue };\n });\n return tasks as BuilderDescriptor;\n }\n\n private getTasksNamesByPipeFunc(env: EnvDefinition, pipeFuncName: PipeFunctionNames): string[] {\n const tasksQueue = calculatePipelineOrder(this.taskSlot, [env], pipeFuncName).map(({ task }) =>\n BuildTaskHelper.serializeId(task)\n );\n return tasksQueue;\n }\n\n getCurrentPipeTasks(env: EnvDefinition) {\n return this.getTasksNamesByPipeFunc(env, this.pipeNameOnEnv);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1085/dist/builder.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.pipelines_builder@0.0.1085/dist/builder.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
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.1085",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/pipelines/builder",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.pipelines",
|
|
8
8
|
"name": "builder",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.1085"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"p-map-series": "2.1.0",
|
|
@@ -27,21 +27,22 @@
|
|
|
27
27
|
"@teambit/graph.cleargraph": "0.0.1",
|
|
28
28
|
"@teambit/harmony": "0.4.6",
|
|
29
29
|
"@teambit/component-id": "0.0.427",
|
|
30
|
-
"@teambit/component": "0.0.
|
|
31
|
-
"@teambit/envs": "0.0.
|
|
32
|
-
"@teambit/logger": "0.0.
|
|
33
|
-
"@teambit/tester": "0.0.
|
|
34
|
-
"@teambit/isolator": "0.0.
|
|
35
|
-
"@teambit/lane-id": "0.0.
|
|
36
|
-
"@teambit/cli": "0.0.
|
|
37
|
-
"@teambit/workspace": "0.0.
|
|
38
|
-
"@teambit/aspect-loader": "0.0.
|
|
39
|
-
"@teambit/aspect": "0.0.
|
|
40
|
-
"@teambit/generator": "0.0.
|
|
41
|
-
"@teambit/
|
|
42
|
-
"@teambit/
|
|
43
|
-
"@teambit/
|
|
44
|
-
"@teambit/
|
|
30
|
+
"@teambit/component": "0.0.1085",
|
|
31
|
+
"@teambit/envs": "0.0.1085",
|
|
32
|
+
"@teambit/logger": "0.0.822",
|
|
33
|
+
"@teambit/tester": "0.0.1085",
|
|
34
|
+
"@teambit/isolator": "0.0.1085",
|
|
35
|
+
"@teambit/lane-id": "0.0.246",
|
|
36
|
+
"@teambit/cli": "0.0.729",
|
|
37
|
+
"@teambit/workspace": "0.0.1085",
|
|
38
|
+
"@teambit/aspect-loader": "0.0.1085",
|
|
39
|
+
"@teambit/aspect": "0.0.1085",
|
|
40
|
+
"@teambit/generator": "0.0.1085",
|
|
41
|
+
"@teambit/global-config": "0.0.731",
|
|
42
|
+
"@teambit/graphql": "0.0.1085",
|
|
43
|
+
"@teambit/scope": "0.0.1085",
|
|
44
|
+
"@teambit/ui": "0.0.1085",
|
|
45
|
+
"@teambit/express": "0.0.827",
|
|
45
46
|
"@teambit/bit-error": "0.0.402"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
"@teambit/pipelines.aspect-docs.builder": "0.0.153"
|
|
60
61
|
},
|
|
61
62
|
"peerDependencies": {
|
|
62
|
-
"@teambit/legacy": "1.0.
|
|
63
|
+
"@teambit/legacy": "1.0.510",
|
|
63
64
|
"react": "^16.8.0 || ^17.0.0",
|
|
64
65
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
65
66
|
},
|
|
Binary file
|