fix(agents): ignore native placeholder artifacts
This commit is contained in:
2 files changed
+34
-2
No files matched your search
@@ -66,7 +66,8 @@ export function collectReusableAssetPlan({ registry, release, versions, modules,
|
|||||||
throw new Error(`Previous agent version mismatch for ${moduleName}: registry=${driver.version}, expected=${versions[moduleName]}`);
|
throw new Error(`Previous agent version mismatch for ${moduleName}: registry=${driver.version}, expected=${versions[moduleName]}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (driver.jar) {
|
const reusableJar = driver.jar && driver.jar.size > 0;
|
||||||
|
if (reusableJar) {
|
||||||
driverAssets.push({
|
driverAssets.push({
|
||||||
...requireReleaseAsset(assets, driver.jar, `${moduleName} Java package`),
|
...requireReleaseAsset(assets, driver.jar, `${moduleName} Java package`),
|
||||||
moduleName,
|
moduleName,
|
||||||
@@ -95,7 +96,7 @@ export function collectReusableAssetPlan({ registry, release, versions, modules,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!driver.jar && nativePlatforms.length === 0) {
|
if (!reusableJar && nativePlatforms.length === 0) {
|
||||||
throw new Error(`Previous agent registry has no reusable artifacts for module: ${moduleName}`);
|
throw new Error(`Previous agent registry has no reusable artifacts for module: ${moduleName}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,6 +60,37 @@ test("rejects an incomplete reusable native platform set", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("ignores zero-size legacy JAR placeholders for native-only modules", () => {
|
||||||
|
const native = Object.fromEntries(
|
||||||
|
platforms.map((platform, index) => [platform, artifact(`dbx-agent-duckdb-0.1.2-${platform}.tar.zst`, String(index + 1))]),
|
||||||
|
);
|
||||||
|
const registry = {
|
||||||
|
drivers: {
|
||||||
|
duckdb: {
|
||||||
|
version: "0.1.2",
|
||||||
|
jar: {
|
||||||
|
url: "https://example.invalid/dbx-agent-duckdb-legacy-placeholder.jar",
|
||||||
|
size: 0,
|
||||||
|
sha256: "",
|
||||||
|
},
|
||||||
|
native,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
jres: {},
|
||||||
|
};
|
||||||
|
|
||||||
|
const plan = collectReusableAssetPlan({
|
||||||
|
registry,
|
||||||
|
release: releaseFor(Object.values(native)),
|
||||||
|
versions: { duckdb: "0.1.2" },
|
||||||
|
modules: ["duckdb"],
|
||||||
|
reuseJre: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.equal(plan.driverAssets.length, 6);
|
||||||
|
assert.equal(plan.driverAssets.some((asset) => asset.kind === "jar"), false);
|
||||||
|
});
|
||||||
|
|
||||||
test("rejects a registry version that differs from the effective baseline", () => {
|
test("rejects a registry version that differs from the effective baseline", () => {
|
||||||
const access = artifact("dbx-agent-access-0.1.33.tar.zst", "a");
|
const access = artifact("dbx-agent-access-0.1.33.tar.zst", "a");
|
||||||
const registry = { drivers: { access: { version: "0.1.33", jar: access } }, jres: {} };
|
const registry = { drivers: { access: { version: "0.1.33", jar: access } }, jres: {} };
|
||||||
|
|||||||
Reference in new issue
Block a user