@teambit/builder 1.0.107 → 1.0.108
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/build-pipe.ts +216 -0
- package/build-pipeline-order.ts +192 -0
- package/build-pipeline-result-list.ts +97 -0
- package/build-task.ts +151 -0
- package/build.cmd.ts +157 -0
- package/builder-env-type.ts +16 -0
- package/builder.aspect.ts +5 -0
- package/builder.graphql.ts +185 -0
- package/builder.main.runtime.ts +493 -0
- package/builder.route.ts +95 -0
- package/dist/artifact/artifact-definition.d.ts +2 -2
- package/dist/artifact/artifact-extractor.d.ts +3 -3
- package/dist/artifact/artifact-factory.d.ts +1 -1
- package/dist/artifact/artifact-factory.js +1 -2
- package/dist/artifact/artifact-factory.js.map +1 -1
- package/dist/artifact/artifact-list.d.ts +1 -1
- package/dist/artifact/artifact.d.ts +1 -1
- package/dist/artifact/artifacts.cmd.d.ts +1 -1
- package/dist/build-pipe.d.ts +3 -3
- package/dist/build-pipe.js +5 -12
- package/dist/build-pipe.js.map +1 -1
- package/dist/build-pipeline-result-list.d.ts +2 -2
- package/dist/build-pipeline-result-list.js +1 -2
- package/dist/build-pipeline-result-list.js.map +1 -1
- package/dist/build-task.d.ts +1 -1
- package/dist/build.cmd.d.ts +1 -1
- package/dist/builder.composition.d.ts +2 -2
- package/dist/builder.graphql.d.ts +17 -17
- package/dist/builder.graphql.js +4 -8
- package/dist/builder.graphql.js.map +1 -1
- package/dist/builder.main.runtime.d.ts +5 -5
- package/dist/builder.main.runtime.js +11 -14
- package/dist/builder.main.runtime.js.map +1 -1
- package/dist/builder.route.d.ts +1 -1
- package/dist/builder.route.js +3 -3
- package/dist/builder.route.js.map +1 -1
- package/dist/builder.service.d.ts +9 -9
- package/dist/builder.service.js +4 -4
- package/dist/builder.service.js.map +1 -1
- package/dist/pipeline.d.ts +1 -1
- package/dist/{preview-1703590665075.js → preview-1703647408454.js} +2 -2
- package/dist/storage/storage-resolver.d.ts +2 -2
- package/dist/task-results-list.js +2 -8
- package/dist/task-results-list.js.map +1 -1
- package/dist/tasks-queue.d.ts +1 -1
- package/dist/types.d.ts +2 -2
- package/index.ts +20 -0
- package/package.json +26 -33
- package/pipeline.ts +104 -0
- package/task-results-list.ts +68 -0
- package/task.ts +50 -0
- package/tasks-queue.ts +40 -0
- package/tsconfig.json +16 -21
- package/types/asset.d.ts +15 -3
- package/types.ts +37 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_path","data","require","_globby","_interopRequireDefault","_lodash","_artifactFiles","_component","_storage","_artifactList","_exceptions","_fsArtifact","obj","__esModule","default","DEFAULT_CONTEXT","exports","ArtifactFactory","resolvePaths","root","def","patternsFlattened","flatten","globPatterns","paths","globby","sync","cwd","getArtifactContextPath","context","component","artifactContext","getArtifactContext","
|
|
1
|
+
{"version":3,"names":["_path","data","require","_globby","_interopRequireDefault","_lodash","_artifactFiles","_component","_storage","_artifactList","_exceptions","_fsArtifact","obj","__esModule","default","DEFAULT_CONTEXT","exports","ArtifactFactory","resolvePaths","root","def","patternsFlattened","flatten","globPatterns","paths","globby","sync","cwd","getArtifactContextPath","context","component","artifactContext","getArtifactContext","capsulePath","capsuleNetwork","graphCapsules","getCapsule","id","path","CapsuleNotFound","capsulesRootDir","createFromComponent","task","contextPath","rootDir","getRootDir","length","undefined","FsArtifact","ArtifactFiles","getStorageResolver","storageResolver","DefaultResolver","toComponentMap","artifactMap","ComponentMap","as","components","toString","artifacts","filter","targetId","map","artifact","ArtifactList","fromArray","join","generate","defs","tupleArr","forEach","capsuleDir","push"],"sources":["artifact-factory.ts"],"sourcesContent":["import { join } from 'path';\nimport globby from 'globby';\nimport { flatten } from 'lodash';\nimport { ArtifactFiles } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { Component, ComponentMap } from '@teambit/component';\nimport { ArtifactDefinition } from './artifact-definition';\nimport { DefaultResolver } from '../storage';\nimport { ArtifactList } from './artifact-list';\nimport type { BuildContext, BuildTask } from '../build-task';\nimport { CapsuleNotFound } from '../exceptions';\nimport { FsArtifact } from './fs-artifact';\n\nexport const DEFAULT_CONTEXT = 'component';\n\nexport type ArtifactMap = ComponentMap<ArtifactList<FsArtifact>>;\n\nexport class ArtifactFactory {\n resolvePaths(root: string, def: ArtifactDefinition): string[] {\n const patternsFlattened = flatten(def.globPatterns);\n const paths = globby.sync(patternsFlattened, { cwd: root });\n return paths;\n }\n\n private getArtifactContextPath(context: BuildContext, component: Component, def: ArtifactDefinition) {\n const artifactContext = this.getArtifactContext(def);\n if (artifactContext === 'component') {\n const capsulePath = context.capsuleNetwork.graphCapsules.getCapsule(component.id)?.path;\n if (!capsulePath) throw new CapsuleNotFound(component.id);\n return capsulePath;\n }\n\n return context.capsuleNetwork.capsulesRootDir;\n }\n\n private getArtifactContext(def: ArtifactDefinition) {\n return def.context || DEFAULT_CONTEXT;\n }\n\n createFromComponent(\n context: BuildContext,\n component: Component,\n def: ArtifactDefinition,\n task: BuildTask\n ): FsArtifact | undefined {\n const contextPath = this.getArtifactContextPath(context, component, def);\n const rootDir = this.getRootDir(contextPath, def);\n const paths = this.resolvePaths(rootDir, def);\n if (!paths || !paths.length) {\n return undefined;\n }\n return new FsArtifact(def, new ArtifactFiles(paths), task, rootDir);\n }\n\n private getStorageResolver(def: ArtifactDefinition) {\n return def.storageResolver || new DefaultResolver();\n }\n\n private toComponentMap(context: BuildContext, artifactMap: [string, FsArtifact][]) {\n return ComponentMap.as<ArtifactList<FsArtifact>>(context.components, (component) => {\n const id = component.id.toString();\n const artifacts = artifactMap.filter(([targetId]) => targetId === id).map(([, artifact]) => artifact);\n\n return ArtifactList.fromArray(artifacts);\n });\n }\n\n getRootDir(rootDir: string, def: ArtifactDefinition) {\n if (!def.rootDir) return rootDir;\n return join(rootDir, def.rootDir);\n }\n\n /**\n * generate artifacts from a build context according to the spec defined in the artifact definitions.\n */\n generate(context: BuildContext, defs: ArtifactDefinition[], task: BuildTask): ComponentMap<ArtifactList<FsArtifact>> {\n const tupleArr: [string, FsArtifact][] = [];\n\n defs.forEach((def) => {\n const artifactContext = this.getArtifactContext(def);\n if (artifactContext === 'env') {\n const capsuleDir = context.capsuleNetwork.capsulesRootDir;\n const rootDir = this.getRootDir(capsuleDir, def);\n const paths = this.resolvePaths(rootDir, def);\n if (paths && paths.length) {\n const artifact = new FsArtifact(def, new ArtifactFiles(this.resolvePaths(rootDir, def)), task, rootDir);\n\n return context.components.forEach((component) => {\n tupleArr.push([component.id.toString(), artifact]);\n });\n }\n }\n\n return context.components.forEach((component) => {\n const artifact = this.createFromComponent(context, component, def, task);\n if (artifact) {\n tupleArr.push([component.id.toString(), artifact]);\n }\n });\n });\n\n return this.toComponentMap(context, tupleArr);\n }\n}\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { ComponentID } from '@teambit/component-id';
|
|
|
4
4
|
import { Scope } from '@teambit/legacy/dist/scope';
|
|
5
5
|
import { ArtifactVinyl } from '@teambit/legacy/dist/consumer/component/sources/artifact';
|
|
6
6
|
import { Artifact } from './artifact';
|
|
7
|
-
export
|
|
7
|
+
export type ResolverMap<T extends Artifact> = {
|
|
8
8
|
[key: string]: T[];
|
|
9
9
|
};
|
|
10
10
|
export declare class ArtifactList<T extends Artifact> extends Array<T> {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Command, CommandOptions } from '@teambit/cli';
|
|
2
2
|
import { ComponentMain } from '@teambit/component';
|
|
3
3
|
import { BuilderMain } from '../builder.main.runtime';
|
|
4
|
-
export
|
|
4
|
+
export type ArtifactsOpts = {
|
|
5
5
|
aspect?: string;
|
|
6
6
|
task?: string;
|
|
7
7
|
files?: string;
|
package/dist/build-pipe.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { ComponentResult } from './types';
|
|
|
7
7
|
import { TasksQueue } from './tasks-queue';
|
|
8
8
|
import { EnvsBuildContext } from './builder.service';
|
|
9
9
|
import { TaskResultsList } from './task-results-list';
|
|
10
|
-
export
|
|
10
|
+
export type TaskResults = {
|
|
11
11
|
/**
|
|
12
12
|
* task itself. useful for getting its id/description later on.
|
|
13
13
|
*/
|
|
@@ -34,7 +34,7 @@ export declare type TaskResults = {
|
|
|
34
34
|
*/
|
|
35
35
|
endTime: number;
|
|
36
36
|
};
|
|
37
|
-
|
|
37
|
+
type PipeOptions = {
|
|
38
38
|
exitOnFirstFailedTask?: boolean;
|
|
39
39
|
showEnvNameInOutput?: boolean;
|
|
40
40
|
showEnvVersionInOutput?: boolean;
|
|
@@ -57,7 +57,7 @@ export declare class BuildPipe {
|
|
|
57
57
|
/**
|
|
58
58
|
* array of services to apply on the components.
|
|
59
59
|
*/
|
|
60
|
-
tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory, previousTaskResults?: TaskResults[]
|
|
60
|
+
tasksQueue: TasksQueue, envsBuildContext: EnvsBuildContext, logger: Logger, artifactFactory: ArtifactFactory, previousTaskResults?: TaskResults[], options?: PipeOptions);
|
|
61
61
|
get allTasksResults(): TaskResults[];
|
|
62
62
|
/**
|
|
63
63
|
* execute a pipeline of build tasks.
|
package/dist/build-pipe.js
CHANGED
|
@@ -82,7 +82,6 @@ class BuildPipe {
|
|
|
82
82
|
* execute a pipeline of build tasks.
|
|
83
83
|
*/
|
|
84
84
|
async execute() {
|
|
85
|
-
var _Object$values$;
|
|
86
85
|
this.addSignalListener();
|
|
87
86
|
await this.executePreBuild();
|
|
88
87
|
this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);
|
|
@@ -91,7 +90,7 @@ class BuildPipe {
|
|
|
91
90
|
env
|
|
92
91
|
}) => this.executeTask(task, env));
|
|
93
92
|
this.longProcessLogger.end();
|
|
94
|
-
const capsuleRootDir =
|
|
93
|
+
const capsuleRootDir = Object.values(this.envsBuildContext)[0]?.capsuleNetwork.capsulesRootDir;
|
|
95
94
|
const tasksResultsList = new (_taskResultsList().TaskResultsList)(this.tasksQueue, this.taskResults, capsuleRootDir);
|
|
96
95
|
await this.executePostBuild(tasksResultsList);
|
|
97
96
|
return tasksResultsList;
|
|
@@ -121,9 +120,8 @@ class BuildPipe {
|
|
|
121
120
|
longProcessLogger.end();
|
|
122
121
|
}
|
|
123
122
|
async executeTask(task, env) {
|
|
124
|
-
var _this$options;
|
|
125
123
|
const taskId = _buildTask().BuildTaskHelper.serializeId(task);
|
|
126
|
-
const envName =
|
|
124
|
+
const envName = this.options?.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';
|
|
127
125
|
const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;
|
|
128
126
|
this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);
|
|
129
127
|
this.updateFailedDependencyTask(task);
|
|
@@ -141,10 +139,7 @@ class BuildPipe {
|
|
|
141
139
|
throw err;
|
|
142
140
|
}
|
|
143
141
|
const endTime = Date.now();
|
|
144
|
-
const compsWithErrors = buildTaskResult.componentsResults.filter(c =>
|
|
145
|
-
var _c$errors;
|
|
146
|
-
return (_c$errors = c.errors) === null || _c$errors === void 0 ? void 0 : _c$errors.length;
|
|
147
|
-
});
|
|
142
|
+
const compsWithErrors = buildTaskResult.componentsResults.filter(c => c.errors?.length);
|
|
148
143
|
let artifacts;
|
|
149
144
|
const duration = (0, _prettyTime().default)(process.hrtime(startTask));
|
|
150
145
|
if (compsWithErrors.length) {
|
|
@@ -172,9 +167,8 @@ class BuildPipe {
|
|
|
172
167
|
return tokens.join(' ');
|
|
173
168
|
}
|
|
174
169
|
getPrettyEnvName(envId) {
|
|
175
|
-
var _this$options2;
|
|
176
170
|
const resolvedId = _component().ComponentID.fromString(envId);
|
|
177
|
-
const ver =
|
|
171
|
+
const ver = this.options?.showEnvVersionInOutput ? `@${resolvedId.version}` : '';
|
|
178
172
|
return `${resolvedId.fullName}${ver}`;
|
|
179
173
|
}
|
|
180
174
|
async executePostBuild(tasksResults) {
|
|
@@ -204,8 +198,7 @@ class BuildPipe {
|
|
|
204
198
|
}
|
|
205
199
|
}
|
|
206
200
|
shouldSkipTask(taskId, envId) {
|
|
207
|
-
|
|
208
|
-
if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.exitOnFirstFailedTask && this.failedTasks.length) {
|
|
201
|
+
if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {
|
|
209
202
|
const failedTaskId = _buildTask().BuildTaskHelper.serializeId(this.failedTasks[0]);
|
|
210
203
|
this.logger.consoleWarning(`env: ${envId}, task "${taskId}" has skipped due to "${failedTaskId}" failure`);
|
|
211
204
|
return true;
|
package/dist/build-pipe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_prettyTime","_toolboxString","_chalk","_buildTask","_taskResultsList","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","options","allTasksResults","taskResults","execute","_Object$values$","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","capsuleRootDir","values","capsuleNetwork","capsulesRootDir","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","_this$options","taskId","BuildTaskHelper","serializeId","envName","showEnvNameInOutput","getPrettyEnvName","taskLogPrefix","getPrettyAspectName","aspectId","name","logProgress","description","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","_c$errors","errors","artifacts","duration","prettyTime","chalk","red","getProgress","failedTasks","push","consoleSuccess","green","defs","generate","startTime","resolvedId","ComponentID","fromString","tokens","split","map","token","capitalize","join","envId","_this$options2","ver","showEnvVersionInOutput","version","fullName","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","deserializeIdAllowEmptyName","find","failedTask","_this$options3","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults","exports"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap, ComponentID } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport chalk from 'chalk';\nimport { ArtifactFactory, ArtifactList, FsArtifact } from './artifact';\nimport { BuildContext, BuildTask, BuildTaskHelper, BuiltTaskResult } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\ntype PipeOptions = {\n exitOnFirstFailedTask?: boolean; // by default it skips only when a dependent failed.\n showEnvNameInOutput?: boolean;\n showEnvVersionInOutput?: boolean; // in case it shows the env-name, whether should show also the version\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[],\n private options?: PipeOptions\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const capsuleRootDir = Object.values(this.envsBuildContext)[0]?.capsuleNetwork.capsulesRootDir;\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults, capsuleRootDir);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n const longProcessLogger = this.logger.createLongProcessLogger('running pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n longProcessLogger.end();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const envName = this.options?.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';\n const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;\n this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n const duration = prettyTime(process.hrtime(startTask));\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.logger.consoleFailure(\n chalk.red(`${this.longProcessLogger.getProgress()} env: ${env.id}, task \"${taskId}\" has failed in ${duration}`)\n );\n this.failedTasks.push(task);\n } else {\n this.logger.consoleSuccess(\n chalk.green(`${this.longProcessLogger.getProgress()} ${taskLogPrefix} Completed successfully in ${duration}`)\n );\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private getPrettyAspectName(aspectId: string): string {\n const resolvedId = ComponentID.fromString(aspectId);\n const tokens = resolvedId.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n private getPrettyEnvName(envId: string) {\n const resolvedId = ComponentID.fromString(envId);\n const ver = this.options?.showEnvVersionInOutput ? `@${resolvedId.version}` : '';\n return `${resolvedId.fullName}${ver}`;\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n const longProcessLogger = this.logger.createLongProcessLogger('running post-build for all tasks');\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n longProcessLogger.end();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {\n const failedTaskId = BuildTaskHelper.serializeId(this.failedTasks[0]);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string): BuildContext {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.allTasksResults;\n return buildContext;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_component","data","require","_pMapSeries","_interopRequireDefault","_prettyTime","_toolboxString","_chalk","_buildTask","_taskResultsList","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","t","i","_toPrimitive","String","r","e","Symbol","toPrimitive","call","TypeError","Number","BuildPipe","constructor","tasksQueue","envsBuildContext","logger","artifactFactory","previousTaskResults","options","allTasksResults","taskResults","execute","addSignalListener","executePreBuild","longProcessLogger","createLongProcessLogger","length","mapSeries","task","env","executeTask","end","capsuleRootDir","values","capsuleNetwork","capsulesRootDir","tasksResultsList","TaskResultsList","executePostBuild","process","on","exit","setStatusLine","preBuild","getBuildContext","id","taskId","BuildTaskHelper","serializeId","envName","showEnvNameInOutput","getPrettyEnvName","taskLogPrefix","getPrettyAspectName","aspectId","name","logProgress","description","updateFailedDependencyTask","shouldSkipTask","startTask","hrtime","taskStartTime","Date","now","buildContext","buildTaskResult","err","consoleFailure","endTime","compsWithErrors","componentsResults","filter","c","errors","artifacts","duration","prettyTime","chalk","red","getProgress","failedTasks","push","consoleSuccess","green","defs","generate","startTime","resolvedId","ComponentID","fromString","tokens","split","map","token","capitalize","join","envId","ver","showEnvVersionInOutput","version","fullName","tasksResults","postBuild","failedDependencyTask","dependencies","forEach","dependency","deserializeIdAllowEmptyName","find","failedTask","exitOnFirstFailedTask","failedTaskId","consoleWarning","Error","previousTasksResults","exports"],"sources":["build-pipe.ts"],"sourcesContent":["import { EnvDefinition } from '@teambit/envs';\nimport { ComponentMap, ComponentID } from '@teambit/component';\nimport { Logger, LongProcessLogger } from '@teambit/logger';\nimport mapSeries from 'p-map-series';\nimport prettyTime from 'pretty-time';\nimport { capitalize } from '@teambit/toolbox.string.capitalize';\nimport chalk from 'chalk';\nimport { ArtifactFactory, ArtifactList, FsArtifact } from './artifact';\nimport { BuildContext, BuildTask, BuildTaskHelper, BuiltTaskResult } from './build-task';\nimport { ComponentResult } from './types';\nimport { TasksQueue } from './tasks-queue';\nimport { EnvsBuildContext } from './builder.service';\nimport { TaskResultsList } from './task-results-list';\n\nexport type TaskResults = {\n /**\n * task itself. useful for getting its id/description later on.\n */\n task: BuildTask;\n\n /**\n * environment were the task was running\n */\n env: EnvDefinition;\n\n /**\n * component build results.\n */\n componentsResults: ComponentResult[];\n\n /**\n * artifacts generated by the build pipeline.\n * in case the task finished with errors, this prop is undefined.\n */\n artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n\n /**\n * timestamp of start initiation.\n */\n startTime: number;\n\n /**\n * timestamp of task completion.\n */\n endTime: number;\n};\n\ntype PipeOptions = {\n exitOnFirstFailedTask?: boolean; // by default it skips only when a dependent failed.\n showEnvNameInOutput?: boolean;\n showEnvVersionInOutput?: boolean; // in case it shows the env-name, whether should show also the version\n};\n\nexport class BuildPipe {\n private failedTasks: BuildTask[] = [];\n private failedDependencyTask: BuildTask | undefined;\n private longProcessLogger: LongProcessLogger;\n private taskResults: TaskResults[] = [];\n constructor(\n /**\n * array of services to apply on the components.\n */\n readonly tasksQueue: TasksQueue,\n readonly envsBuildContext: EnvsBuildContext,\n readonly logger: Logger,\n readonly artifactFactory: ArtifactFactory,\n private previousTaskResults?: TaskResults[],\n private options?: PipeOptions\n ) {}\n\n get allTasksResults(): TaskResults[] {\n return [...(this.previousTaskResults || []), ...(this.taskResults || [])];\n }\n\n /**\n * execute a pipeline of build tasks.\n */\n async execute(): Promise<TaskResultsList> {\n this.addSignalListener();\n await this.executePreBuild();\n this.longProcessLogger = this.logger.createLongProcessLogger('running tasks', this.tasksQueue.length);\n await mapSeries(this.tasksQueue, async ({ task, env }) => this.executeTask(task, env));\n this.longProcessLogger.end();\n const capsuleRootDir = Object.values(this.envsBuildContext)[0]?.capsuleNetwork.capsulesRootDir;\n const tasksResultsList = new TaskResultsList(this.tasksQueue, this.taskResults, capsuleRootDir);\n await this.executePostBuild(tasksResultsList);\n\n return tasksResultsList;\n }\n\n /**\n * for some reason, some tasks (such as typescript compilation) ignore ctrl+C. this fixes it.\n */\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n\n private async executePreBuild() {\n this.logger.setStatusLine('executing pre-build for all tasks');\n const longProcessLogger = this.logger.createLongProcessLogger('running pre-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.preBuild) return;\n await task.preBuild(this.getBuildContext(env.id));\n });\n longProcessLogger.end();\n }\n\n private async executeTask(task: BuildTask, env: EnvDefinition): Promise<void> {\n const taskId = BuildTaskHelper.serializeId(task);\n const envName = this.options?.showEnvNameInOutput ? `(${this.getPrettyEnvName(env.id)}) ` : '';\n const taskLogPrefix = `${envName}[${this.getPrettyAspectName(task.aspectId)}: ${task.name}]`;\n this.longProcessLogger.logProgress(`${taskLogPrefix}${task.description ? ` ${task.description}` : ''}`, false);\n this.updateFailedDependencyTask(task);\n if (this.shouldSkipTask(taskId, env.id)) {\n return;\n }\n const startTask = process.hrtime();\n const taskStartTime = Date.now();\n const buildContext = this.getBuildContext(env.id);\n let buildTaskResult: BuiltTaskResult;\n try {\n buildTaskResult = await task.execute(buildContext);\n } catch (err) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" threw an error`);\n throw err;\n }\n\n const endTime = Date.now();\n const compsWithErrors = buildTaskResult.componentsResults.filter((c) => c.errors?.length);\n let artifacts: ComponentMap<ArtifactList<FsArtifact>> | undefined;\n const duration = prettyTime(process.hrtime(startTask));\n if (compsWithErrors.length) {\n this.logger.consoleFailure(`env: ${env.id}, task \"${taskId}\" has failed`);\n this.logger.consoleFailure(\n chalk.red(`${this.longProcessLogger.getProgress()} env: ${env.id}, task \"${taskId}\" has failed in ${duration}`)\n );\n this.failedTasks.push(task);\n } else {\n this.logger.consoleSuccess(\n chalk.green(`${this.longProcessLogger.getProgress()} ${taskLogPrefix} Completed successfully in ${duration}`)\n );\n const defs = buildTaskResult.artifacts || [];\n artifacts = this.artifactFactory.generate(buildContext, defs, task);\n }\n\n const taskResults: TaskResults = {\n task,\n env,\n componentsResults: buildTaskResult.componentsResults,\n artifacts,\n startTime: taskStartTime,\n endTime,\n };\n\n this.taskResults.push(taskResults);\n }\n\n private getPrettyAspectName(aspectId: string): string {\n const resolvedId = ComponentID.fromString(aspectId);\n const tokens = resolvedId.name.split('-').map((token) => capitalize(token));\n return tokens.join(' ');\n }\n\n private getPrettyEnvName(envId: string) {\n const resolvedId = ComponentID.fromString(envId);\n const ver = this.options?.showEnvVersionInOutput ? `@${resolvedId.version}` : '';\n return `${resolvedId.fullName}${ver}`;\n }\n\n private async executePostBuild(tasksResults: TaskResultsList) {\n const longProcessLogger = this.logger.createLongProcessLogger('running post-build for all tasks');\n this.logger.setStatusLine('executing post-build for all tasks');\n await mapSeries(this.tasksQueue, async ({ task, env }) => {\n if (!task.postBuild) return;\n await task.postBuild(this.getBuildContext(env.id), tasksResults);\n });\n longProcessLogger.end();\n }\n\n private updateFailedDependencyTask(task: BuildTask) {\n if (!this.failedDependencyTask && this.failedTasks.length && task.dependencies) {\n task.dependencies.forEach((dependency) => {\n const { aspectId, name } = BuildTaskHelper.deserializeIdAllowEmptyName(dependency);\n this.failedDependencyTask = this.failedTasks.find((failedTask) => {\n if (name && name !== failedTask.name) return false;\n return aspectId === failedTask.aspectId;\n });\n });\n }\n }\n\n private shouldSkipTask(taskId: string, envId: string): boolean {\n if (this.options?.exitOnFirstFailedTask && this.failedTasks.length) {\n const failedTaskId = BuildTaskHelper.serializeId(this.failedTasks[0]);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n if (!this.failedDependencyTask) return false;\n const failedTaskId = BuildTaskHelper.serializeId(this.failedDependencyTask);\n this.logger.consoleWarning(`env: ${envId}, task \"${taskId}\" has skipped due to \"${failedTaskId}\" failure`);\n return true;\n }\n\n private getBuildContext(envId: string): BuildContext {\n const buildContext = this.envsBuildContext[envId];\n if (!buildContext) throw new Error(`unable to find buildContext for ${envId}`);\n buildContext.previousTasksResults = this.allTasksResults;\n return buildContext;\n }\n}\n"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { ComponentID, Component } from '@teambit/component';
|
|
|
2
2
|
import type { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';
|
|
3
3
|
import { TaskResults } from './build-pipe';
|
|
4
4
|
import { TaskMetadata } from './types';
|
|
5
|
-
export
|
|
5
|
+
export type PipelineReport = {
|
|
6
6
|
taskId: string;
|
|
7
7
|
taskName: string;
|
|
8
8
|
taskDescription?: string;
|
|
@@ -11,7 +11,7 @@ export declare type PipelineReport = {
|
|
|
11
11
|
errors?: Array<Error | string>;
|
|
12
12
|
warnings?: string[];
|
|
13
13
|
};
|
|
14
|
-
export
|
|
14
|
+
export type AspectData = {
|
|
15
15
|
aspectId: string;
|
|
16
16
|
data: TaskMetadata;
|
|
17
17
|
};
|
|
@@ -87,8 +87,7 @@ class BuildPipelineResultList {
|
|
|
87
87
|
}));
|
|
88
88
|
}
|
|
89
89
|
getArtifactsDataOfComponent(componentId) {
|
|
90
|
-
|
|
91
|
-
return (_this$artifactListsMa = this.artifactListsMap.getValueByComponentId(componentId)) === null || _this$artifactListsMa === void 0 ? void 0 : _this$artifactListsMa.toObject();
|
|
90
|
+
return this.artifactListsMap.getValueByComponentId(componentId)?.toObject();
|
|
92
91
|
}
|
|
93
92
|
mergeDataIfPossible(currentData, existingData, taskId) {
|
|
94
93
|
if (!existingData || (0, _lodash().isEmpty)(existingData)) return currentData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_component","data","require","_lodash","_artifact","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","BuildPipelineResultList","constructor","tasksResults","components","artifactListsMap","getFlattenedArtifactListsMapFromAllTasks","artifactListsMaps","flatMap","artifacts","ComponentMap","as","component","artifactListMap","artifactList","getValueByComponentId","id","ArtifactList","fromArray","getMetadataFromTaskResults","componentId","compResults","reduce","acc","current","foundComponent","componentsResults","find","c","isEqual","taskId","task","aspectId","metadata","mergeDataIfPossible","getPipelineReportOfComponent","map","taskResults","pipelineReport","taskName","name","taskDescription","description","errors","warnings","startTime","endTime","compact","getDataOfComponent","tasksData","getArtifactsDataOfComponent","
|
|
1
|
+
{"version":3,"names":["_component","data","require","_lodash","_artifact","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","BuildPipelineResultList","constructor","tasksResults","components","artifactListsMap","getFlattenedArtifactListsMapFromAllTasks","artifactListsMaps","flatMap","artifacts","ComponentMap","as","component","artifactListMap","artifactList","getValueByComponentId","id","ArtifactList","fromArray","getMetadataFromTaskResults","componentId","compResults","reduce","acc","current","foundComponent","componentsResults","find","c","isEqual","taskId","task","aspectId","metadata","mergeDataIfPossible","getPipelineReportOfComponent","map","taskResults","pipelineReport","taskName","name","taskDescription","description","errors","warnings","startTime","endTime","compact","getDataOfComponent","tasksData","getArtifactsDataOfComponent","toObject","currentData","existingData","isEmpty","Error","Array","isArray","exports"],"sources":["build-pipeline-result-list.ts"],"sourcesContent":["import { ComponentID, ComponentMap, Component } from '@teambit/component';\nimport { isEmpty, compact } from 'lodash';\nimport type { ArtifactObject } from '@teambit/legacy/dist/consumer/component/sources/artifact-files';\nimport { Artifact, ArtifactList } from './artifact';\nimport { TaskResults } from './build-pipe';\nimport { TaskMetadata } from './types';\n\nexport type PipelineReport = {\n taskId: string; // task aspect-id\n taskName: string;\n taskDescription?: string;\n startTime?: number;\n endTime?: number;\n errors?: Array<Error | string>;\n warnings?: string[];\n};\n\nexport type AspectData = {\n aspectId: string;\n data: TaskMetadata;\n};\n\n/**\n * Helper to get the data and artifacts from the TasksResultsList before saving during the tag\n */\nexport class BuildPipelineResultList {\n private artifactListsMap: ComponentMap<ArtifactList<Artifact>>;\n constructor(private tasksResults: TaskResults[], private components: Component[]) {\n this.artifactListsMap = this.getFlattenedArtifactListsMapFromAllTasks();\n }\n\n private getFlattenedArtifactListsMapFromAllTasks(): ComponentMap<ArtifactList<Artifact>> {\n const artifactListsMaps = this.tasksResults.flatMap((t) => (t.artifacts ? [t.artifacts] : []));\n return ComponentMap.as<ArtifactList<Artifact>>(this.components, (component) => {\n const artifacts: Artifact[] = [];\n artifactListsMaps.forEach((artifactListMap) => {\n const artifactList = artifactListMap.getValueByComponentId(component.id);\n if (artifactList) artifacts.push(...artifactList);\n });\n return ArtifactList.fromArray(artifacts);\n });\n }\n\n public getMetadataFromTaskResults(componentId: ComponentID): { [taskId: string]: TaskMetadata } {\n const compResults = this.tasksResults.reduce((acc, current: TaskResults) => {\n const foundComponent = current.componentsResults.find((c) => c.component.id.isEqual(componentId));\n const taskId = current.task.aspectId;\n if (foundComponent && foundComponent.metadata) {\n acc[taskId] = this.mergeDataIfPossible(foundComponent.metadata, acc[taskId], taskId);\n }\n return acc;\n }, {});\n return compResults;\n }\n\n public getPipelineReportOfComponent(componentId: ComponentID): PipelineReport[] {\n const compResults = this.tasksResults.map((taskResults: TaskResults) => {\n const foundComponent = taskResults.componentsResults.find((c) => c.component.id.isEqual(componentId));\n if (!foundComponent) return null;\n const pipelineReport: PipelineReport = {\n taskId: taskResults.task.aspectId,\n taskName: taskResults.task.name,\n taskDescription: taskResults.task.description,\n errors: foundComponent.errors,\n warnings: foundComponent.warnings,\n startTime: foundComponent.startTime,\n endTime: foundComponent.endTime,\n };\n return pipelineReport;\n });\n return compact(compResults);\n }\n\n public getDataOfComponent(componentId: ComponentID): AspectData[] {\n const tasksData = this.getMetadataFromTaskResults(componentId);\n return Object.keys(tasksData).map((taskId) => ({\n aspectId: taskId,\n data: tasksData[taskId],\n }));\n }\n\n public getArtifactsDataOfComponent(componentId: ComponentID): ArtifactObject[] | undefined {\n return this.artifactListsMap.getValueByComponentId(componentId)?.toObject();\n }\n\n private mergeDataIfPossible(currentData: TaskMetadata, existingData: TaskMetadata | undefined, taskId: string) {\n if (!existingData || isEmpty(existingData)) return currentData;\n // both exist\n if (typeof currentData !== 'object') {\n throw new Error(`task data must be \"object\", get ${typeof currentData} for ${taskId}`);\n }\n if (Array.isArray(currentData)) {\n throw new Error(`task data must be \"object\", get Array for ${taskId}`);\n }\n return { ...currentData, ...existingData };\n }\n}\n"],"mappings":"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"}
|
package/dist/build-task.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { ArtifactDefinition } from './artifact';
|
|
|
7
7
|
import { TaskResultsList } from './task-results-list';
|
|
8
8
|
import { TaskResults } from './build-pipe';
|
|
9
9
|
import { PipeName } from './builder.service';
|
|
10
|
-
export
|
|
10
|
+
export type TaskLocation = 'start' | 'end';
|
|
11
11
|
/**
|
|
12
12
|
* delimiter between task.aspectId and task.name
|
|
13
13
|
*/
|
package/dist/build.cmd.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Command, CommandOptions } from '@teambit/cli';
|
|
|
2
2
|
import { Logger } from '@teambit/logger';
|
|
3
3
|
import { Workspace } from '@teambit/workspace';
|
|
4
4
|
import { BuilderMain } from './builder.main.runtime';
|
|
5
|
-
|
|
5
|
+
type BuildOpts = {
|
|
6
6
|
all: boolean;
|
|
7
7
|
unmodified?: boolean;
|
|
8
8
|
dev: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const Logo: () =>
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Logo: () => JSX.Element;
|
|
@@ -2,7 +2,7 @@ import { Component, ComponentID } from '@teambit/component';
|
|
|
2
2
|
import { Logger } from '@teambit/logger';
|
|
3
3
|
import { BuilderMain } from './builder.main.runtime';
|
|
4
4
|
import { PipelineReport } from './build-pipeline-result-list';
|
|
5
|
-
|
|
5
|
+
type ArtifactGQLFile = {
|
|
6
6
|
/**
|
|
7
7
|
* same as the path - used for GQL caching
|
|
8
8
|
*/
|
|
@@ -32,14 +32,14 @@ declare type ArtifactGQLFile = {
|
|
|
32
32
|
*/
|
|
33
33
|
size: number;
|
|
34
34
|
};
|
|
35
|
-
|
|
35
|
+
type ArtifactGQLData = {
|
|
36
36
|
name: string;
|
|
37
37
|
description?: string;
|
|
38
38
|
storage?: string;
|
|
39
39
|
generatedBy: string;
|
|
40
40
|
files: ArtifactGQLFile[];
|
|
41
41
|
};
|
|
42
|
-
|
|
42
|
+
type TaskReport = PipelineReport & {
|
|
43
43
|
artifact?: ArtifactGQLData;
|
|
44
44
|
componentId: ComponentID;
|
|
45
45
|
};
|
|
@@ -48,13 +48,13 @@ export declare function builderSchema(builder: BuilderMain, logger: Logger): {
|
|
|
48
48
|
resolvers: {
|
|
49
49
|
Component: {
|
|
50
50
|
pipelineReport: (component: Component, { taskId }: {
|
|
51
|
-
taskId?: string
|
|
51
|
+
taskId?: string;
|
|
52
52
|
}) => Promise<{
|
|
53
53
|
id: string;
|
|
54
54
|
artifact: {
|
|
55
55
|
id: string;
|
|
56
56
|
name: string;
|
|
57
|
-
description: string
|
|
57
|
+
description: string;
|
|
58
58
|
task: import("./build-task").TaskDescriptor;
|
|
59
59
|
storage: string;
|
|
60
60
|
generatedBy: string;
|
|
@@ -62,26 +62,26 @@ export declare function builderSchema(builder: BuilderMain, logger: Logger): {
|
|
|
62
62
|
id: string;
|
|
63
63
|
name: string;
|
|
64
64
|
path: string;
|
|
65
|
-
content: string
|
|
65
|
+
content: string;
|
|
66
66
|
downloadUrl: string;
|
|
67
|
-
externalUrl: string
|
|
67
|
+
externalUrl: string;
|
|
68
68
|
size: number;
|
|
69
69
|
}[];
|
|
70
|
-
}
|
|
70
|
+
};
|
|
71
71
|
taskId: string;
|
|
72
72
|
taskName: string;
|
|
73
|
-
taskDescription?: string
|
|
74
|
-
startTime?: number
|
|
75
|
-
endTime?: number
|
|
76
|
-
errors?: (string | Error)[]
|
|
77
|
-
warnings?: string[]
|
|
73
|
+
taskDescription?: string;
|
|
74
|
+
startTime?: number;
|
|
75
|
+
endTime?: number;
|
|
76
|
+
errors?: (string | Error)[];
|
|
77
|
+
warnings?: string[];
|
|
78
78
|
}[]>;
|
|
79
79
|
};
|
|
80
80
|
TaskReport: {
|
|
81
81
|
id: (taskReport: TaskReport & {
|
|
82
82
|
id?: string;
|
|
83
83
|
}) => string;
|
|
84
|
-
description: (taskReport: TaskReport) => string
|
|
84
|
+
description: (taskReport: TaskReport) => string;
|
|
85
85
|
errors: (taskReport: TaskReport) => string[];
|
|
86
86
|
warnings: (taskReport: TaskReport) => string[];
|
|
87
87
|
artifact: (taskReport: TaskReport, { path: pathFilter }: {
|
|
@@ -89,11 +89,11 @@ export declare function builderSchema(builder: BuilderMain, logger: Logger): {
|
|
|
89
89
|
}) => Promise<{
|
|
90
90
|
files: ArtifactGQLFile[];
|
|
91
91
|
name: string;
|
|
92
|
-
description?: string
|
|
93
|
-
storage?: string
|
|
92
|
+
description?: string;
|
|
93
|
+
storage?: string;
|
|
94
94
|
generatedBy: string;
|
|
95
95
|
id: string;
|
|
96
|
-
}
|
|
96
|
+
}>;
|
|
97
97
|
};
|
|
98
98
|
};
|
|
99
99
|
};
|
package/dist/builder.graphql.js
CHANGED
|
@@ -79,7 +79,7 @@ function builderSchema(builder, logger) {
|
|
|
79
79
|
}) => {
|
|
80
80
|
try {
|
|
81
81
|
const builderData = builder.getBuilderData(component);
|
|
82
|
-
const pipeline =
|
|
82
|
+
const pipeline = builderData?.pipeline || [];
|
|
83
83
|
const artifacts = taskId ? builder.getArtifactsByAspect(component, taskId) : builder.getArtifacts(component);
|
|
84
84
|
const artifactsWithVinyl = await Promise.all(artifacts.map(async artifact => {
|
|
85
85
|
const id = artifact.task.aspectId;
|
|
@@ -92,7 +92,7 @@ function builderSchema(builder, logger) {
|
|
|
92
92
|
contents
|
|
93
93
|
} = vinyl || {};
|
|
94
94
|
const isBinary = path && (0, _isBinaryPath().default)(path);
|
|
95
|
-
const content = !isBinary ? contents
|
|
95
|
+
const content = !isBinary ? contents?.toString('utf-8') : undefined;
|
|
96
96
|
const size = contents.byteLength;
|
|
97
97
|
const downloadUrl = encodeURI(builder.getDownloadUrlForArtifact(component.id, artifact.task.aspectId, path));
|
|
98
98
|
const externalUrl = vinyl.url;
|
|
@@ -142,18 +142,14 @@ function builderSchema(builder, logger) {
|
|
|
142
142
|
TaskReport: {
|
|
143
143
|
id: taskReport => `${taskReport.id && `${taskReport.id}-` || ''}${taskReport.taskId}-${taskReport.taskName}`,
|
|
144
144
|
description: taskReport => taskReport.taskDescription,
|
|
145
|
-
errors: taskReport =>
|
|
146
|
-
var _taskReport$errors;
|
|
147
|
-
return ((_taskReport$errors = taskReport.errors) === null || _taskReport$errors === void 0 ? void 0 : _taskReport$errors.map(e => e.toString())) || [];
|
|
148
|
-
},
|
|
145
|
+
errors: taskReport => taskReport.errors?.map(e => e.toString()) || [],
|
|
149
146
|
warnings: taskReport => taskReport.warnings || [],
|
|
150
147
|
artifact: async (taskReport, {
|
|
151
148
|
path: pathFilter
|
|
152
149
|
}) => {
|
|
153
|
-
var _taskReport$artifact;
|
|
154
150
|
if (!taskReport.artifact) return undefined;
|
|
155
151
|
return _objectSpread(_objectSpread({
|
|
156
|
-
id: `${taskReport.taskId}-${taskReport.taskName}-${
|
|
152
|
+
id: `${taskReport.taskId}-${taskReport.taskName}-${taskReport.artifact?.name}-${pathFilter || ''}`
|
|
157
153
|
}, taskReport.artifact), {}, {
|
|
158
154
|
files: taskReport.artifact.files.filter(file => !pathFilter || file.path === pathFilter)
|
|
159
155
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","_isBinaryPath","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","builderSchema","builder","logger","typeDefs","gql","resolvers","Component","pipelineReport","component","taskId","builderData","getBuilderData","pipeline","artifacts","getArtifactsByAspect","getArtifacts","artifactsWithVinyl","Promise","all","map","artifact","id","task","aspectId","name","artifactFiles","getArtifactsVinylByAspectAndTaskName","vinyl","basename","path","contents","isBinary","isBinaryPath","content","toString","undefined","size","byteLength","downloadUrl","encodeURI","getDownloadUrlForArtifact","externalUrl","url","description","storage","generatedBy","files","error","result","find","taskName","TaskReport","taskReport","taskDescription","errors","_taskReport$errors","warnings","pathFilter","_taskReport$artifact","file"],"sources":["builder.graphql.ts"],"sourcesContent":["import { Component, ComponentID } from '@teambit/component';\nimport gql from 'graphql-tag';\nimport { Logger } from '@teambit/logger';\nimport isBinaryPath from 'is-binary-path';\nimport { BuilderMain } from './builder.main.runtime';\nimport { PipelineReport } from './build-pipeline-result-list';\n\ntype ArtifactGQLFile = {\n /**\n * same as the path - used for GQL caching\n */\n id: string;\n /**\n * name of the artifact file\n */\n name: string;\n /**\n * path of the artifact file\n */\n path: string;\n /**\n * artifact file content (only for text files). Use /api/<component-id>/~aspect/builder/<extension-id>/~<path> to fetch binary file data\n */\n content?: string;\n /**\n * REST endpoint to fetch artifact data from. /api/<component-id>/~aspect/builder/<extension-id>/~<pat\n */\n downloadUrl?: string;\n /**\n * Remote storage url to resolve artifact file from\n */\n externalUrl?: string;\n /**\n * Size in bytes\n */\n size: number;\n};\n\ntype ArtifactGQLData = {\n name: string;\n description?: string;\n storage?: string;\n generatedBy: string;\n files: ArtifactGQLFile[];\n};\ntype TaskReport = PipelineReport & {\n artifact?: ArtifactGQLData;\n componentId: ComponentID;\n};\n\nexport function builderSchema(builder: BuilderMain, logger: Logger) {\n return {\n typeDefs: gql`\n type TaskReport {\n # for GQL caching - taskId + taskName\n id: String!\n taskId: String!\n taskName: String!\n description: String\n startTime: String\n endTime: String\n errors: [String!]\n warnings: [String!]\n artifact(path: String): Artifact\n }\n\n type ArtifactFile {\n # for GQL caching - same as the path\n id: String!\n # name of the artifact file\n name: String\n # path of the artifact file\n path: String!\n # artifact file content (only for text files). Use /api/<component-id>/~aspect/builder/<extension-id>/~<path> to fetch binary file data\n content: String\n # REST endpoint to fetch artifact data from. /api/<component-id>/~aspect/builder/<extension-id>/~<path>\n downloadUrl: String\n # Remote storage url to resolve artifact file from\n externalUrl: String\n # size in bytes\n size: Int!\n }\n\n type Artifact {\n # for GQL caching - PipelineId + Artifact Name\n id: String!\n # artifact name\n name: String!\n description: String\n storage: String\n generatedBy: String\n files: [ArtifactFile!]!\n }\n\n extend type Component {\n pipelineReport(taskId: String): [TaskReport!]!\n }\n `,\n\n resolvers: {\n Component: {\n pipelineReport: async (component: Component, { taskId }: { taskId?: string }) => {\n try {\n const builderData = builder.getBuilderData(component);\n const pipeline = builderData?.pipeline || [];\n const artifacts = taskId\n ? builder.getArtifactsByAspect(component, taskId)\n : builder.getArtifacts(component);\n const artifactsWithVinyl = await Promise.all(\n artifacts.map(async (artifact) => {\n const id = artifact.task.aspectId;\n const name = artifact.task.name as string;\n try {\n const artifactFiles = (await builder.getArtifactsVinylByAspectAndTaskName(component, id, name)).map(\n (vinyl) => {\n const { basename, path, contents } = vinyl || {};\n const isBinary = path && isBinaryPath(path);\n const content = !isBinary ? contents?.toString('utf-8') : undefined;\n const size = contents.byteLength;\n const downloadUrl = encodeURI(\n builder.getDownloadUrlForArtifact(component.id, artifact.task.aspectId, path)\n );\n const externalUrl = vinyl.url;\n return { id: path, name: basename, path, content, downloadUrl, externalUrl, size };\n }\n );\n return {\n id: `${id}-${name}-${artifact.name}`,\n name: artifact.name,\n description: artifact.description,\n task: artifact.task,\n storage: artifact.storage,\n generatedBy: artifact.generatedBy,\n files: artifactFiles,\n };\n } catch (e: any) {\n logger.error(e.toString());\n return {\n id: `${id}-${name}-${artifact.name}`,\n name: artifact.name,\n description: artifact.description,\n task: artifact.task,\n storage: artifact.storage,\n generatedBy: artifact.generatedBy,\n files: [],\n };\n }\n })\n );\n\n const result = pipeline\n .filter((task) => !taskId || task.taskId === taskId)\n .map((task) => ({\n ...task,\n id: `filter-${taskId || ''}`,\n artifact: artifactsWithVinyl.find(\n (data) => data.task.aspectId === task.taskId && data.task.name === task.taskName\n ),\n }));\n\n return result;\n } catch (e: any) {\n logger.error(e.toString());\n return [];\n }\n },\n },\n TaskReport: {\n id: (taskReport: TaskReport & { id?: string }) =>\n `${(taskReport.id && `${taskReport.id}-`) || ''}${taskReport.taskId}-${taskReport.taskName}`,\n description: (taskReport: TaskReport) => taskReport.taskDescription,\n errors: (taskReport: TaskReport) => taskReport.errors?.map((e) => e.toString()) || [],\n warnings: (taskReport: TaskReport) => taskReport.warnings || [],\n artifact: async (taskReport: TaskReport, { path: pathFilter }: { path?: string }) => {\n if (!taskReport.artifact) return undefined;\n return {\n id: `${taskReport.taskId}-${taskReport.taskName}-${taskReport.artifact?.name}-${pathFilter || ''}`,\n ...taskReport.artifact,\n files: taskReport.artifact.files.filter((file) => !pathFilter || file.path === pathFilter),\n };\n },\n },\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_graphqlTag","data","_interopRequireDefault","require","_isBinaryPath","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","String","Symbol","toPrimitive","call","TypeError","Number","builderSchema","builder","logger","typeDefs","gql","resolvers","Component","pipelineReport","component","taskId","builderData","getBuilderData","pipeline","artifacts","getArtifactsByAspect","getArtifacts","artifactsWithVinyl","Promise","all","map","artifact","id","task","aspectId","name","artifactFiles","getArtifactsVinylByAspectAndTaskName","vinyl","basename","path","contents","isBinary","isBinaryPath","content","toString","undefined","size","byteLength","downloadUrl","encodeURI","getDownloadUrlForArtifact","externalUrl","url","description","storage","generatedBy","files","error","result","find","taskName","TaskReport","taskReport","taskDescription","errors","warnings","pathFilter","file"],"sources":["builder.graphql.ts"],"sourcesContent":["import { Component, ComponentID } from '@teambit/component';\nimport gql from 'graphql-tag';\nimport { Logger } from '@teambit/logger';\nimport isBinaryPath from 'is-binary-path';\nimport { BuilderMain } from './builder.main.runtime';\nimport { PipelineReport } from './build-pipeline-result-list';\n\ntype ArtifactGQLFile = {\n /**\n * same as the path - used for GQL caching\n */\n id: string;\n /**\n * name of the artifact file\n */\n name: string;\n /**\n * path of the artifact file\n */\n path: string;\n /**\n * artifact file content (only for text files). Use /api/<component-id>/~aspect/builder/<extension-id>/~<path> to fetch binary file data\n */\n content?: string;\n /**\n * REST endpoint to fetch artifact data from. /api/<component-id>/~aspect/builder/<extension-id>/~<pat\n */\n downloadUrl?: string;\n /**\n * Remote storage url to resolve artifact file from\n */\n externalUrl?: string;\n /**\n * Size in bytes\n */\n size: number;\n};\n\ntype ArtifactGQLData = {\n name: string;\n description?: string;\n storage?: string;\n generatedBy: string;\n files: ArtifactGQLFile[];\n};\ntype TaskReport = PipelineReport & {\n artifact?: ArtifactGQLData;\n componentId: ComponentID;\n};\n\nexport function builderSchema(builder: BuilderMain, logger: Logger) {\n return {\n typeDefs: gql`\n type TaskReport {\n # for GQL caching - taskId + taskName\n id: String!\n taskId: String!\n taskName: String!\n description: String\n startTime: String\n endTime: String\n errors: [String!]\n warnings: [String!]\n artifact(path: String): Artifact\n }\n\n type ArtifactFile {\n # for GQL caching - same as the path\n id: String!\n # name of the artifact file\n name: String\n # path of the artifact file\n path: String!\n # artifact file content (only for text files). Use /api/<component-id>/~aspect/builder/<extension-id>/~<path> to fetch binary file data\n content: String\n # REST endpoint to fetch artifact data from. /api/<component-id>/~aspect/builder/<extension-id>/~<path>\n downloadUrl: String\n # Remote storage url to resolve artifact file from\n externalUrl: String\n # size in bytes\n size: Int!\n }\n\n type Artifact {\n # for GQL caching - PipelineId + Artifact Name\n id: String!\n # artifact name\n name: String!\n description: String\n storage: String\n generatedBy: String\n files: [ArtifactFile!]!\n }\n\n extend type Component {\n pipelineReport(taskId: String): [TaskReport!]!\n }\n `,\n\n resolvers: {\n Component: {\n pipelineReport: async (component: Component, { taskId }: { taskId?: string }) => {\n try {\n const builderData = builder.getBuilderData(component);\n const pipeline = builderData?.pipeline || [];\n const artifacts = taskId\n ? builder.getArtifactsByAspect(component, taskId)\n : builder.getArtifacts(component);\n const artifactsWithVinyl = await Promise.all(\n artifacts.map(async (artifact) => {\n const id = artifact.task.aspectId;\n const name = artifact.task.name as string;\n try {\n const artifactFiles = (await builder.getArtifactsVinylByAspectAndTaskName(component, id, name)).map(\n (vinyl) => {\n const { basename, path, contents } = vinyl || {};\n const isBinary = path && isBinaryPath(path);\n const content = !isBinary ? contents?.toString('utf-8') : undefined;\n const size = contents.byteLength;\n const downloadUrl = encodeURI(\n builder.getDownloadUrlForArtifact(component.id, artifact.task.aspectId, path)\n );\n const externalUrl = vinyl.url;\n return { id: path, name: basename, path, content, downloadUrl, externalUrl, size };\n }\n );\n return {\n id: `${id}-${name}-${artifact.name}`,\n name: artifact.name,\n description: artifact.description,\n task: artifact.task,\n storage: artifact.storage,\n generatedBy: artifact.generatedBy,\n files: artifactFiles,\n };\n } catch (e: any) {\n logger.error(e.toString());\n return {\n id: `${id}-${name}-${artifact.name}`,\n name: artifact.name,\n description: artifact.description,\n task: artifact.task,\n storage: artifact.storage,\n generatedBy: artifact.generatedBy,\n files: [],\n };\n }\n })\n );\n\n const result = pipeline\n .filter((task) => !taskId || task.taskId === taskId)\n .map((task) => ({\n ...task,\n id: `filter-${taskId || ''}`,\n artifact: artifactsWithVinyl.find(\n (data) => data.task.aspectId === task.taskId && data.task.name === task.taskName\n ),\n }));\n\n return result;\n } catch (e: any) {\n logger.error(e.toString());\n return [];\n }\n },\n },\n TaskReport: {\n id: (taskReport: TaskReport & { id?: string }) =>\n `${(taskReport.id && `${taskReport.id}-`) || ''}${taskReport.taskId}-${taskReport.taskName}`,\n description: (taskReport: TaskReport) => taskReport.taskDescription,\n errors: (taskReport: TaskReport) => taskReport.errors?.map((e) => e.toString()) || [],\n warnings: (taskReport: TaskReport) => taskReport.warnings || [],\n artifact: async (taskReport: TaskReport, { path: pathFilter }: { path?: string }) => {\n if (!taskReport.artifact) return undefined;\n return {\n id: `${taskReport.taskId}-${taskReport.taskName}-${taskReport.artifact?.name}-${pathFilter || ''}`,\n ...taskReport.artifact,\n files: taskReport.artifact.files.filter((file) => !pathFilter || file.path === pathFilter),\n };\n },\n },\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -19,12 +19,12 @@ import { BuildTask } from './build-task';
|
|
|
19
19
|
import { TaskResultsList } from './task-results-list';
|
|
20
20
|
import { AspectData, PipelineReport } from './build-pipeline-result-list';
|
|
21
21
|
import { TaskMetadata } from './types';
|
|
22
|
-
export
|
|
23
|
-
export
|
|
22
|
+
export type TaskSlot = SlotRegistry<BuildTask[]>;
|
|
23
|
+
export type OnTagResults = {
|
|
24
24
|
builderDataMap: ComponentMap<RawBuilderData>;
|
|
25
25
|
pipeResults: TaskResultsList[];
|
|
26
26
|
};
|
|
27
|
-
export
|
|
27
|
+
export type OnTagOpts = {
|
|
28
28
|
disableTagAndSnapPipelines?: boolean;
|
|
29
29
|
throwOnError?: boolean;
|
|
30
30
|
forceDeploy?: boolean;
|
|
@@ -35,7 +35,7 @@ export declare const FILE_PATH_PARAM_DELIM = "~";
|
|
|
35
35
|
/**
|
|
36
36
|
* builder data format for the bit object store
|
|
37
37
|
*/
|
|
38
|
-
export
|
|
38
|
+
export type RawBuilderData = {
|
|
39
39
|
pipeline: PipelineReport[];
|
|
40
40
|
artifacts?: ArtifactObject[];
|
|
41
41
|
aspectsData: AspectData[];
|
|
@@ -44,7 +44,7 @@ export declare type RawBuilderData = {
|
|
|
44
44
|
/**
|
|
45
45
|
* builder data mapped to an ArtifactList instance
|
|
46
46
|
*/
|
|
47
|
-
export
|
|
47
|
+
export type BuilderData = Omit<RawBuilderData, 'artifacts'> & {
|
|
48
48
|
artifacts: ArtifactList<Artifact>;
|
|
49
49
|
};
|
|
50
50
|
export declare class BuilderMain {
|