66 lines
1.8 KiB
JavaScript
66 lines
1.8 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import { readFileSync } from 'fs';
|
|
import path from 'path';
|
|
|
|
function readPackageJson(dir) {
|
|
const p = path.join(dir, 'package.json');
|
|
return JSON.parse(readFileSync(p, 'utf-8'));
|
|
}
|
|
|
|
const root = readPackageJson('.');
|
|
const cli = readPackageJson('packages/cli');
|
|
const core = readPackageJson('packages/core');
|
|
|
|
const errors = [];
|
|
|
|
console.log('Checking version consistency...');
|
|
|
|
// 1. Check that all package versions are the same.
|
|
if (root.version !== cli.version || root.version !== core.version) {
|
|
errors.push(
|
|
`Version mismatch: root (${root.version}), cli (${cli.version}), core (${core.version})`,
|
|
);
|
|
} else {
|
|
console.log(`- All packages are at version ${root.version}.`);
|
|
}
|
|
|
|
// 2. Check that the cli's dependency on core matches the core version.
|
|
const coreDepVersion = cli.dependencies['@google/gemini-cli-core'];
|
|
const expectedCoreVersion = `^${core.version}`;
|
|
if (
|
|
coreDepVersion !== expectedCoreVersion &&
|
|
coreDepVersion !== 'file:../core'
|
|
) {
|
|
errors.push(
|
|
`CLI dependency on core is wrong: expected ${expectedCoreVersion} or "file:../core", got ${coreDepVersion}`,
|
|
);
|
|
} else {
|
|
console.log(`- CLI dependency on core (${coreDepVersion}) is correct.`);
|
|
}
|
|
|
|
// 3. Check that the sandbox image tag matches the root version.
|
|
const imageUri = root.config.sandboxImageUri;
|
|
const imageTag = imageUri.split(':').pop();
|
|
if (imageTag !== root.version) {
|
|
errors.push(
|
|
`Sandbox image tag mismatch: expected ${root.version}, got ${imageTag}`,
|
|
);
|
|
} else {
|
|
console.log(`- Sandbox image tag (${imageTag}) is correct.`);
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
console.error('\nVersion consistency checks failed:');
|
|
for (const error of errors) {
|
|
console.error(`- ${error}`);
|
|
}
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log('\nAll version checks passed!');
|