diff --git a/packages/workspace/src/tasks-runner/run-command/index.spec.ts b/packages/workspace/src/tasks-runner/run-command/index.spec.ts index 7299756c42..e4913c9fb4 100644 --- a/packages/workspace/src/tasks-runner/run-command/index.spec.ts +++ b/packages/workspace/src/tasks-runner/run-command/index.spec.ts @@ -749,7 +749,7 @@ describe('createTasksForProjectToRun', () => { } }); - it('should forward overrides to tasks with the same target name', () => { + it('should forward overrides to tasks with the same target executor', () => { projectGraph.nodes.app1.data.targets.build.dependsOn = [ { target: 'prebuild', @@ -760,11 +760,31 @@ describe('createTasksForProjectToRun', () => { projects: 'dependencies', }, ]; - projectGraph.dependencies.app1.push({ - type: DependencyType.static, - source: 'app1', - target: 'lib1', - }); + projectGraph.nodes.app1.data.targets.build.executor = 'executor1'; + projectGraph.nodes.lib1.data.targets.build.executor = 'executor1'; + projectGraph.nodes.app1.data.targets.prebuild.executor = 'executor2'; + projectGraph.nodes.lib2 = { + data: { + root: 'lib2-root', + files: [], + targets: { build: { executor: 'executor2' } }, + }, + name: 'lib2', + type: 'lib', + }; + projectGraph.dependencies.lib2 = []; + projectGraph.dependencies.app1.push( + { + type: DependencyType.static, + source: 'app1', + target: 'lib1', + }, + { + type: DependencyType.static, + source: 'app1', + target: 'lib2', + } + ); const tasks = createTasksForProjectToRun( [projectGraph.nodes.app1], @@ -798,6 +818,16 @@ describe('createTasksForProjectToRun', () => { target: 'build', }, }, + { + id: 'lib2:build', + overrides: {}, + projectRoot: 'lib2-root', + target: { + configuration: undefined, + project: 'lib2', + target: 'build', + }, + }, { id: 'app1:build', overrides: { myFlag: 'flag value' }, diff --git a/packages/workspace/src/tasks-runner/run-command/index.ts b/packages/workspace/src/tasks-runner/run-command/index.ts index 40022d9df4..c6559adc42 100644 --- a/packages/workspace/src/tasks-runner/run-command/index.ts +++ b/packages/workspace/src/tasks-runner/run-command/index.ts @@ -212,7 +212,7 @@ export function createTasksForProjectToRun( }, defaultDependencyConfigs, projectGraph, - params.target, + project.data.targets?.[params.target]?.executor, tasksMap, [], seenSet @@ -231,7 +231,7 @@ function addTasksForProjectTarget( }: TaskParams, defaultDependencyConfigs: Record = {}, projectGraph: ProjectGraph, - originalTargetName: string, + originalTargetExecutor: string, tasksMap: Map, path: string[], seenSet: Set @@ -240,7 +240,10 @@ function addTasksForProjectTarget( project, target, configuration, - overrides: target === originalTargetName ? overrides : {}, + overrides: + project.data.targets?.[target]?.executor === originalTargetExecutor + ? overrides + : {}, errorIfCannotFindConfiguration, }); @@ -262,7 +265,7 @@ function addTasksForProjectTarget( dependencyConfig, defaultDependencyConfigs, projectGraph, - originalTargetName, + originalTargetExecutor, tasksMap, path, seenSet @@ -326,7 +329,7 @@ function addTasksForProjectDependencyConfig( dependencyConfig: TargetDependencyConfig, defaultDependencyConfigs: Record, projectGraph: ProjectGraph, - originalTargetName: string, + originalTargetExecutor: string, tasksMap: Map, path: string[], seenSet: Set @@ -368,7 +371,7 @@ function addTasksForProjectDependencyConfig( }, defaultDependencyConfigs, projectGraph, - originalTargetName, + originalTargetExecutor, tasksMap, [...path, targetIdentifier], seenSet @@ -384,7 +387,7 @@ function addTasksForProjectDependencyConfig( dependencyConfig, defaultDependencyConfigs, projectGraph, - originalTargetName, + originalTargetExecutor, tasksMap, path, seenSet @@ -403,7 +406,7 @@ function addTasksForProjectDependencyConfig( }, defaultDependencyConfigs, projectGraph, - originalTargetName, + originalTargetExecutor, tasksMap, [...path, targetIdentifier], seenSet