Skip to content

Commit cf8f61e

Browse files
authored
fix: make fileVariables accessible at an earlier stage (#1341)
1 parent ee0b8c2 commit cf8f61e

File tree

4 files changed

+27
-1
lines changed

4 files changed

+27
-1
lines changed

src/job.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ export class Job {
153153
}
154154

155155
const matrixVariables = opt.matrixVariables ?? {};
156-
this._variables = {...globalVariables, ...jobVariables, ...matrixVariables, ...predefinedVariables, ...argvVariables};
156+
const fileVariables = Utils.findEnvMatchedVariables(variablesFromFiles, this.fileVariablesDir);
157+
this._variables = {...globalVariables, ...jobVariables, ...matrixVariables, ...predefinedVariables, ...fileVariables, ...argvVariables};
157158

158159
let ciProjectDir = `${cwd}`;
159160
if (this.jobData["image"]) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
issue-1333:
3+
script:
4+
- echo "$API_KEY"
5+
environment:
6+
name: $CUSTOM_VAR

tests/test-cases/project-variables-file/.gitlab-ci-local-variables.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,9 @@ FUNNY2:
1414
FUNNY3:
1515
values:
1616
"*": Recursive CI/CD
17+
18+
CUSTOM_VAR: prod
19+
20+
API_KEY:
21+
values:
22+
"prod": firecow

tests/test-cases/project-variables-file/integration.project-variables-file.test.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,16 @@ test.concurrent("project-variables-file <test-job>", async () => {
2121
];
2222
expect(writeStreams.stdoutLines).toEqual(expect.arrayContaining(expected));
2323
});
24+
25+
test.concurrent("project-variables-file <issue-1333>", async () => {
26+
const writeStreams = new WriteStreamsMock();
27+
await handler({
28+
cwd: "tests/test-cases/project-variables-file",
29+
file: ".gitlab-ci-issue-1333.yml",
30+
}, writeStreams);
31+
32+
const expected = [
33+
chalk`{blueBright issue-1333} {greenBright >} firecow`,
34+
];
35+
expect(writeStreams.stdoutLines).toEqual(expect.arrayContaining(expected));
36+
});

0 commit comments

Comments
 (0)