feat(core): support project and target specific env files when running a task (#6453)

This commit is contained in:
Leosvel Pérez Espinosa 2021-07-21 18:44:59 +01:00 committed by GitHub
parent d53e25a611
commit 202c89c130
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,6 +29,7 @@ export class ForkedProcessTaskRunner {
return new Promise<BatchResults>((res, rej) => { return new Promise<BatchResults>((res, rej) => {
try { try {
const env = this.envForForkedProcess( const env = this.envForForkedProcess(
taskGraph.tasks[0].target.target,
process.env.FORCE_COLOR === undefined process.env.FORCE_COLOR === undefined
? 'true' ? 'true'
: process.env.FORCE_COLOR : process.env.FORCE_COLOR
@ -211,6 +212,7 @@ export class ForkedProcessTaskRunner {
} }
private envForForkedProcess( private envForForkedProcess(
target: string,
forceColor: string, forceColor: string,
outputPath?: string, outputPath?: string,
forwardOutput?: boolean forwardOutput?: boolean
@ -218,7 +220,8 @@ export class ForkedProcessTaskRunner {
const envsFromFiles = { const envsFromFiles = {
...parseEnv('.env'), ...parseEnv('.env'),
...parseEnv('.local.env'), ...parseEnv('.local.env'),
...parseEnv('.env.local'), ...parseEnv(`.${target}.env`),
...parseEnv(`.env.${target}`),
}; };
const env: NodeJS.ProcessEnv = { const env: NodeJS.ProcessEnv = {
@ -249,14 +252,22 @@ export class ForkedProcessTaskRunner {
forwardOutput: boolean forwardOutput: boolean
) { ) {
let env: NodeJS.ProcessEnv = this.envForForkedProcess( let env: NodeJS.ProcessEnv = this.envForForkedProcess(
task.target.target,
forceColor, forceColor,
outputPath, outputPath,
forwardOutput forwardOutput
); );
const envsFromFiles = { const envsFromFiles = {
...parseEnv('.env'),
...parseEnv('.local.env'),
...parseEnv('.env.local'),
...parseEnv(`.${task.target.target}.env`),
...parseEnv(`.env.${task.target.target}`),
...parseEnv(`${task.projectRoot}/.env`), ...parseEnv(`${task.projectRoot}/.env`),
...parseEnv(`${task.projectRoot}/.local.env`), ...parseEnv(`${task.projectRoot}/.local.env`),
...parseEnv(`${task.projectRoot}/.env.local`), ...parseEnv(`${task.projectRoot}/.env.local`),
...parseEnv(`${task.projectRoot}/.${task.target.target}.env`),
...parseEnv(`${task.projectRoot}/.env.${task.target.target}`),
}; };
env = { env = {