fix: materialize shared artifacts without prior catalog
This commit is contained in:
@@ -24,10 +24,21 @@ if [ -s /workspace/source/affected-services.json ] && ! node -e 'const fs=requir
|
||||
node - "$(params.service-id)" <<'NODE'
|
||||
const fs = require("node:fs");
|
||||
const serviceId = process.argv[2];
|
||||
const catalog = JSON.parse(fs.readFileSync(process.env.HWLAB_ARTIFACT_CATALOG_PATH, "utf8"));
|
||||
const plan = fs.existsSync("/workspace/source/affected-services.json") ? JSON.parse(fs.readFileSync("/workspace/source/affected-services.json", "utf8")) : {};
|
||||
const service = (catalog.services || []).find((item) => item.serviceId === serviceId) || {};
|
||||
const planned = (plan.services || []).find((item) => item.serviceId === serviceId) || {};
|
||||
const sharedEnvSourceServiceId = planned.envArtifactSourceServiceId || planned.envArtifactBuildServiceId || "";
|
||||
const sharedEnvSource = (plan.services || []).find((item) => item.serviceId === sharedEnvSourceServiceId) || {};
|
||||
if (planned.envReuse === true && sharedEnvSourceServiceId && sharedEnvSourceServiceId !== serviceId && sharedEnvSource.buildRequired === true) {
|
||||
console.log(JSON.stringify({
|
||||
event: "service-build-skip",
|
||||
serviceId,
|
||||
reason: "shared-env-artifact-pending",
|
||||
envArtifactSourceServiceId: sharedEnvSourceServiceId
|
||||
}));
|
||||
process.exit(0);
|
||||
}
|
||||
const catalog = JSON.parse(fs.readFileSync(process.env.HWLAB_ARTIFACT_CATALOG_PATH, "utf8"));
|
||||
const service = (catalog.services || []).find((item) => item.serviceId === serviceId) || {};
|
||||
const envReuse = planned.runtimeMode === "env-reuse-gitea-checkout" || service.runtimeMode === "env-reuse-gitea-checkout" || planned.envReuse === true || service.envReuse === true;
|
||||
const image = envReuse ? (service.environmentImage || service.image || "") : (service.image || "");
|
||||
const digest = envReuse ? (service.environmentDigest || service.digest || "not_published") : (service.digest || "not_published");
|
||||
|
||||
Reference in New Issue
Block a user