Skip to content

Commit 20b6781

Browse files
committed
[FEATURE] Schema: Allow builder.resources.exclude config for modules
1 parent 9e1e665 commit 20b6781

File tree

2 files changed

+90
-22
lines changed
  • lib/validation/schema/specVersion/kind/project
  • test/lib/validation/schema/specVersion/kind/project

2 files changed

+90
-22
lines changed

lib/validation/schema/specVersion/kind/project/module.json

Lines changed: 69 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
"required": ["specVersion", "type", "metadata"],
77
"if": {
88
"properties": {
9-
"specVersion": { "enum": ["3.0", "3.1"] }
9+
"specVersion": { "enum": ["3.1"] }
1010
}
1111
},
1212
"then": {
1313
"additionalProperties": false,
1414
"properties": {
15-
"specVersion": { "enum": ["3.0", "3.1"] },
15+
"specVersion": { "enum": ["3.1"] },
1616
"kind": {
1717
"enum": ["project", null]
1818
},
@@ -26,7 +26,7 @@
2626
"$ref": "#/definitions/resources"
2727
},
2828
"builder": {
29-
"$ref": "#/definitions/builder-specVersion-2.5"
29+
"$ref": "#/definitions/builder-specVersion-3.1"
3030
},
3131
"server": {
3232
"$ref": "../project.json#/definitions/server"
@@ -40,21 +40,21 @@
4040
"else": {
4141
"if": {
4242
"properties": {
43-
"specVersion": { "enum": ["2.5", "2.6"] }
43+
"specVersion": { "enum": ["3.0"] }
4444
}
4545
},
4646
"then": {
4747
"additionalProperties": false,
4848
"properties": {
49-
"specVersion": { "enum": ["2.5", "2.6"] },
49+
"specVersion": { "enum": ["3.0"] },
5050
"kind": {
5151
"enum": ["project", null]
5252
},
5353
"type": {
5454
"enum": ["module"]
5555
},
5656
"metadata": {
57-
"$ref": "../project.json#/definitions/metadata"
57+
"$ref": "../project.json#/definitions/metadata-3.0"
5858
},
5959
"resources": {
6060
"$ref": "#/definitions/resources"
@@ -74,13 +74,13 @@
7474
"else": {
7575
"if": {
7676
"properties": {
77-
"specVersion": { "enum": ["2.1", "2.2", "2.3", "2.4"] }
77+
"specVersion": { "enum": ["2.5", "2.6"] }
7878
}
7979
},
8080
"then": {
8181
"additionalProperties": false,
8282
"properties": {
83-
"specVersion": { "enum": ["2.1", "2.2", "2.3", "2.4"] },
83+
"specVersion": { "enum": ["2.5", "2.6"] },
8484
"kind": {
8585
"enum": ["project", null]
8686
},
@@ -93,27 +93,62 @@
9393
"resources": {
9494
"$ref": "#/definitions/resources"
9595
},
96+
"builder": {
97+
"$ref": "#/definitions/builder-specVersion-2.5"
98+
},
99+
"server": {
100+
"$ref": "../project.json#/definitions/server"
101+
},
96102
"customConfiguration": {
97103
"type": "object",
98104
"additionalProperties": true
99105
}
100106
}
101107
},
102108
"else": {
103-
"additionalProperties": false,
104-
"properties": {
105-
"specVersion": { "enum": ["2.0"] },
106-
"kind": {
107-
"enum": ["project", null]
108-
},
109-
"type": {
110-
"enum": ["module"]
111-
},
112-
"metadata": {
113-
"$ref": "../project.json#/definitions/metadata"
114-
},
115-
"resources": {
116-
"$ref": "#/definitions/resources"
109+
"if": {
110+
"properties": {
111+
"specVersion": { "enum": ["2.1", "2.2", "2.3", "2.4"] }
112+
}
113+
},
114+
"then": {
115+
"additionalProperties": false,
116+
"properties": {
117+
"specVersion": { "enum": ["2.1", "2.2", "2.3", "2.4"] },
118+
"kind": {
119+
"enum": ["project", null]
120+
},
121+
"type": {
122+
"enum": ["module"]
123+
},
124+
"metadata": {
125+
"$ref": "../project.json#/definitions/metadata"
126+
},
127+
"resources": {
128+
"$ref": "#/definitions/resources"
129+
},
130+
"customConfiguration": {
131+
"type": "object",
132+
"additionalProperties": true
133+
}
134+
}
135+
},
136+
"else": {
137+
"additionalProperties": false,
138+
"properties": {
139+
"specVersion": { "enum": ["2.0"] },
140+
"kind": {
141+
"enum": ["project", null]
142+
},
143+
"type": {
144+
"enum": ["module"]
145+
},
146+
"metadata": {
147+
"$ref": "../project.json#/definitions/metadata"
148+
},
149+
"resources": {
150+
"$ref": "#/definitions/resources"
151+
}
117152
}
118153
}
119154
}
@@ -149,6 +184,18 @@
149184
"$ref": "../project.json#/definitions/builder-settings"
150185
}
151186
}
187+
},
188+
"builder-specVersion-3.1": {
189+
"type": "object",
190+
"additionalProperties": false,
191+
"properties": {
192+
"resources": {
193+
"$ref": "../project.json#/definitions/builder-resources"
194+
},
195+
"settings": {
196+
"$ref": "../project.json#/definitions/builder-settings"
197+
}
198+
}
152199
}
153200
}
154201
}

test/lib/validation/schema/specVersion/kind/project/module.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,4 +418,25 @@ SpecificationVersion.getVersionsForRange(">=3.0").forEach(function(specVersion)
418418
});
419419
});
420420

421+
SpecificationVersion.getVersionsForRange(">=3.1").forEach(function(specVersion) {
422+
test(`Builder resource excludes (specVersion ${specVersion})`, async (t) => {
423+
await assertValidation(t, {
424+
"specVersion": specVersion,
425+
"kind": "project",
426+
"type": "module",
427+
"metadata": {
428+
"name": "my-module"
429+
},
430+
"builder": {
431+
"resources": {
432+
"excludes": [
433+
"/resources/some/project/name/test_results/**",
434+
"!/test-resources/some/project/name/demo-app/**"
435+
]
436+
}
437+
}
438+
});
439+
});
440+
});
441+
421442
project.defineTests(test, assertValidation, "module");

0 commit comments

Comments
 (0)