Skip to content

Commit 83530eb

Browse files
committed
Fix extends resolution
1 parent 0bf73bc commit 83530eb

File tree

4 files changed

+12
-3
lines changed

4 files changed

+12
-3
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"gitlab-ci-builder": patch
3+
---
4+
5+
fixes problem while resolving the extends. unknown extends aren't removed now, so we can also specify remote jobs/tempates.

src/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,11 +540,11 @@ export class Config {
540540
for (const key of jobIds) {
541541
const job = pipeline.jobs[key] as JobDefinitionExtends
542542

543-
// Check if this job has resolveExtends disabled - if so, keep extends but normalize
543+
// Check if this job has resolveExtends disabled - if so, keep original extends (local or remote)
544544
const jobOpts = this.jobOptionsMap[key]
545545
if (jobOpts?.resolveExtends === false) {
546546
delete job.needsExtends
547-
// Normalize single-element extends array to string for cleaner output
547+
// Normalize single-element array to string for cleaner output, but do not filter
548548
if (Array.isArray(job.extends) && job.extends.length === 1) {
549549
job.extends = job.extends[0]
550550
}

src/export.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import fs from "fs/promises"
22
import yaml from "js-yaml"
33

4-
import type { GitLabCi } from "."
4+
import type { GitLabCi } from "./"
55

66
/**
77
* Convert a plain `GitLabCi` object to a YAML string.

tests/job-options.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ describe("Job Options", () => {
2727
extends: ".base",
2828
stage: "test",
2929
})
30+
expect(result.jobs?.child?.extends).toBe(".base")
3031
expect(result.jobs?.child?.script).toBeUndefined()
3132
})
3233

@@ -41,6 +42,7 @@ describe("Job Options", () => {
4142
extends: ".base",
4243
stage: "test",
4344
})
45+
expect(result.jobs?.child?.extends).toBe(".base")
4446
expect(result.jobs?.child?.script).toBeUndefined()
4547
})
4648

@@ -58,6 +60,7 @@ describe("Job Options", () => {
5860
extends: ".base",
5961
stage: "test",
6062
})
63+
expect(result.jobs?.disabled?.extends).toBe(".base")
6164
expect(result.jobs?.disabled?.script).toBeUndefined()
6265

6366
// enabled should resolve extends
@@ -170,6 +173,7 @@ describe("Job Options", () => {
170173
extends: ".base",
171174
stage: "test",
172175
})
176+
expect(result.jobs?.test?.extends).toBe(".base")
173177
expect(result.jobs?.test?.script).toBeUndefined()
174178
})
175179

0 commit comments

Comments
 (0)