fix(deploy): include edge channel contract in manager release
This commit is contained in:
@@ -12,7 +12,7 @@ const devicePlaneRoot = resolve(platformRoot, "device-plane");
|
|||||||
const designRoot = resolve(process.env.NODEDC_DEVICE_MANAGER_SOURCE_ROOT || resolve(platformRoot, "../NODEDC_DESIGN_GUIDELINE"));
|
const designRoot = resolve(process.env.NODEDC_DEVICE_MANAGER_SOURCE_ROOT || resolve(platformRoot, "../NODEDC_DESIGN_GUIDELINE"));
|
||||||
const managerRoot = resolve(designRoot, "apps/device-manager");
|
const managerRoot = resolve(designRoot, "apps/device-manager");
|
||||||
const artifactDir = resolve(process.env.NODEDC_DEPLOY_ARTIFACT_DIR || resolve(scriptDir, "../deploy-artifacts"));
|
const artifactDir = resolve(process.env.NODEDC_DEPLOY_ARTIFACT_DIR || resolve(scriptDir, "../deploy-artifacts"));
|
||||||
const [patchId = "device-manager-release-20260811-013", ...extra] = process.argv.slice(2);
|
const [patchId = "device-manager-release-20260811-014", ...extra] = process.argv.slice(2);
|
||||||
if (extra.length || !/^[A-Za-z0-9._-]{1,96}$/.test(patchId)) throw new Error("usage: build-device-manager-control-plane-artifact.mjs [patch-id]");
|
if (extra.length || !/^[A-Za-z0-9._-]{1,96}$/.test(patchId)) throw new Error("usage: build-device-manager-control-plane-artifact.mjs [patch-id]");
|
||||||
|
|
||||||
const entries = [
|
const entries = [
|
||||||
@@ -21,6 +21,7 @@ const entries = [
|
|||||||
"package-lock.json",
|
"package-lock.json",
|
||||||
"docker-compose.device-manager.yml",
|
"docker-compose.device-manager.yml",
|
||||||
"packages/device-protocol-contract",
|
"packages/device-protocol-contract",
|
||||||
|
"packages/device-edge-channel-contract",
|
||||||
"packages/arusnavi-b2-adapter",
|
"packages/arusnavi-b2-adapter",
|
||||||
"services/device-control-core",
|
"services/device-control-core",
|
||||||
"services/device-gateway/package.json",
|
"services/device-gateway/package.json",
|
||||||
@@ -61,26 +62,28 @@ try {
|
|||||||
}
|
}
|
||||||
await copySafe(resolve(devicePlaneRoot, entry), join(payload, entry), devicePlaneRoot);
|
await copySafe(resolve(devicePlaneRoot, entry), join(payload, entry), devicePlaneRoot);
|
||||||
}
|
}
|
||||||
const coreImport = spawnSync(
|
for (const modulePath of [
|
||||||
process.execPath,
|
"services/device-control-core/src/sensitive-reference-management.mjs",
|
||||||
[
|
"packages/device-edge-channel-contract/src/index.mjs",
|
||||||
"--input-type=module",
|
]) {
|
||||||
"--eval",
|
const coreImport = spawnSync(
|
||||||
`import(${JSON.stringify(pathToFileURL(join(
|
process.execPath,
|
||||||
payload,
|
[
|
||||||
"services/device-control-core/src/sensitive-reference-management.mjs",
|
"--input-type=module",
|
||||||
)).href)})`,
|
"--eval",
|
||||||
],
|
`import(${JSON.stringify(pathToFileURL(join(payload, modulePath)).href)})`,
|
||||||
{
|
],
|
||||||
cwd: payload,
|
{
|
||||||
encoding: "utf8",
|
cwd: payload,
|
||||||
maxBuffer: 16 * 1024 * 1024,
|
encoding: "utf8",
|
||||||
},
|
maxBuffer: 16 * 1024 * 1024,
|
||||||
);
|
},
|
||||||
if (coreImport.status !== 0) {
|
|
||||||
throw new Error(
|
|
||||||
`device_control_core_staged_module_import_failed:${coreImport.stderr || coreImport.stdout}`,
|
|
||||||
);
|
);
|
||||||
|
if (coreImport.status !== 0) {
|
||||||
|
throw new Error(
|
||||||
|
`device_control_core_staged_module_import_failed:${modulePath}:${coreImport.stderr || coreImport.stdout}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const compose = await readFile(join(payload, "docker-compose.device-manager.yml"), "utf8");
|
const compose = await readFile(join(payload, "docker-compose.device-manager.yml"), "utf8");
|
||||||
for (const required of [
|
for (const required of [
|
||||||
|
|||||||
@@ -298,6 +298,7 @@ DEVICE_PLANE_MANAGER_RELEASE_V2_ENTRIES = (
|
|||||||
"package-lock.json",
|
"package-lock.json",
|
||||||
DEVICE_PLANE_MANAGER_COMPOSE_REL,
|
DEVICE_PLANE_MANAGER_COMPOSE_REL,
|
||||||
"packages/device-protocol-contract",
|
"packages/device-protocol-contract",
|
||||||
|
"packages/device-edge-channel-contract",
|
||||||
"packages/arusnavi-b2-adapter",
|
"packages/arusnavi-b2-adapter",
|
||||||
"services/device-control-core",
|
"services/device-control-core",
|
||||||
"services/device-gateway/package.json",
|
"services/device-gateway/package.json",
|
||||||
@@ -3531,6 +3532,7 @@ def allowed_payload_path(component, rel):
|
|||||||
DEVICE_PLANE_MANAGER_RECONCILIATION_REL,
|
DEVICE_PLANE_MANAGER_RECONCILIATION_REL,
|
||||||
DEVICE_PLANE_MANAGER_V2_RECONCILIATION_REL,
|
DEVICE_PLANE_MANAGER_V2_RECONCILIATION_REL,
|
||||||
"packages/device-protocol-contract",
|
"packages/device-protocol-contract",
|
||||||
|
"packages/device-edge-channel-contract",
|
||||||
"packages/arusnavi-b2-adapter",
|
"packages/arusnavi-b2-adapter",
|
||||||
"services/device-control-core",
|
"services/device-control-core",
|
||||||
"services/device-gateway",
|
"services/device-gateway",
|
||||||
@@ -3541,6 +3543,7 @@ def allowed_payload_path(component, rel):
|
|||||||
return True
|
return True
|
||||||
if rel.startswith((
|
if rel.startswith((
|
||||||
"packages/device-protocol-contract/",
|
"packages/device-protocol-contract/",
|
||||||
|
"packages/device-edge-channel-contract/",
|
||||||
"packages/arusnavi-b2-adapter/",
|
"packages/arusnavi-b2-adapter/",
|
||||||
"services/device-control-core/",
|
"services/device-control-core/",
|
||||||
"services/device-gateway/",
|
"services/device-gateway/",
|
||||||
|
|||||||
@@ -205,6 +205,11 @@ class DeviceManagerControlPlaneArtifactsTest(unittest.TestCase):
|
|||||||
"payload/services/device-control-core/src/credential-reference.mjs",
|
"payload/services/device-control-core/src/credential-reference.mjs",
|
||||||
names,
|
names,
|
||||||
)
|
)
|
||||||
|
self.assertIn(
|
||||||
|
"payload/packages/device-edge-channel-contract/src/index.mjs",
|
||||||
|
names,
|
||||||
|
)
|
||||||
|
self.assertIn("packages/device-edge-channel-contract", entries)
|
||||||
self.assertFalse(any(name.endswith(".test.mjs") for name in names))
|
self.assertFalse(any(name.endswith(".test.mjs") for name in names))
|
||||||
self.assertEqual(result["services"], ["device-control-core", "device-manager"])
|
self.assertEqual(result["services"], ["device-control-core", "device-manager"])
|
||||||
self.assertNotIn("device-postgres", result["services"])
|
self.assertNotIn("device-postgres", result["services"])
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ class DevicePlaneRegistryTest(unittest.TestCase):
|
|||||||
".dockerignore",
|
".dockerignore",
|
||||||
"docker-compose.device-plane.yml",
|
"docker-compose.device-plane.yml",
|
||||||
"packages/device-protocol-contract/src/index.mjs",
|
"packages/device-protocol-contract/src/index.mjs",
|
||||||
|
"packages/device-edge-channel-contract/src/index.mjs",
|
||||||
"services/device-control-core/Dockerfile",
|
"services/device-control-core/Dockerfile",
|
||||||
"services/device-gateway/src/runtime.mjs",
|
"services/device-gateway/src/runtime.mjs",
|
||||||
):
|
):
|
||||||
|
|||||||
Reference in New Issue
Block a user