fix(cicd): vendor Ajv bundle for warning stage
This commit is contained in:
@@ -16,8 +16,10 @@ export function runtimeGitopsScriptsConfigMap({ overlay, scriptsDir, featureConf
|
||||
]) {
|
||||
data[name] = readFileSync(path.join(scriptsDir, name), "utf8");
|
||||
}
|
||||
data["feature-config-schema-warning.mjs"] = readFileSync(featureConfigValidatorPath ?? path.join(scriptsDir, "feature-config-schema-warning.mjs"), "utf8");
|
||||
data["ajv2020.min.js"] = readFileSync(ajvBundlePath ?? path.join(scriptsDir, "ajv2020.min.js"), "utf8");
|
||||
const featureConfigValidator = optionalFile(featureConfigValidatorPath ?? path.join(scriptsDir, "feature-config-schema-warning.mjs"));
|
||||
if (featureConfigValidator !== null) data["feature-config-schema-warning.mjs"] = featureConfigValidator;
|
||||
const ajvBundle = optionalFile(ajvBundlePath ?? path.join(scriptsDir, "ajv2020.min.js"));
|
||||
if (ajvBundle !== null) data["ajv2020.min.js"] = ajvBundle;
|
||||
return {
|
||||
apiVersion: "v1",
|
||||
kind: "ConfigMap",
|
||||
@@ -44,3 +46,11 @@ function requiredString(value, pathLabel) {
|
||||
function objectOr(value) {
|
||||
return value && typeof value === "object" && !Array.isArray(value) ? value : {};
|
||||
}
|
||||
|
||||
function optionalFile(file) {
|
||||
try {
|
||||
return readFileSync(file, "utf8");
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,3 +47,26 @@ test("preserves codeAgentRuntime in the owning runtime GitOps overlay", () => {
|
||||
expect(configMap.data["feature-config-schema-warning.mjs"]).toBe("feature-config-schema-warning.mjs\n");
|
||||
expect(configMap.data["ajv2020.min.js"]).toBe("ajv2020.min.js\n");
|
||||
});
|
||||
|
||||
test("missing optional validator artifacts do not block ConfigMap rendering", () => {
|
||||
const scriptsDir = mkdtempSync(join(tmpdir(), "runtime-gitops-configmap-"));
|
||||
roots.push(scriptsDir);
|
||||
for (const name of [
|
||||
"runtime-gitops-observability.mjs",
|
||||
"runtime-gitops-postprocess.mjs",
|
||||
"runtime-gitops-verify.mjs",
|
||||
]) {
|
||||
writeFileSync(join(scriptsDir, name), `${name}\n`);
|
||||
}
|
||||
|
||||
const configMap = runtimeGitopsScriptsConfigMap({
|
||||
overlay: { runtimePath: "runtime" },
|
||||
scriptsDir,
|
||||
namespace: "hwlab",
|
||||
configMapName: "runtime-gitops-scripts",
|
||||
});
|
||||
|
||||
expect(configMap.data["runtime-gitops-verify.mjs"]).toBe("runtime-gitops-verify.mjs\n");
|
||||
expect(configMap.data["feature-config-schema-warning.mjs"]).toBeUndefined();
|
||||
expect(configMap.data["ajv2020.min.js"]).toBeUndefined();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user