Files
chrome-use/scripts/check-version-sync.js
T
n33pm 3f74bd2171 ci(version): add version sync check between package.json and Cargo.toml (#277)
Add automated verification that package.json and cli/Cargo.toml versions
stay in sync. This prevents version drift between the npm package and
Rust CLI binary.

- Add CI job to check version sync on push/PR
- Update pre-commit hook to sync versions automatically
- Update ci:version script to include version sync step
- Add check-version-sync.js script for CI validation
2026-01-27 09:09:04 -06:00

40 lines
1.2 KiB
JavaScript

#!/usr/bin/env node
/**
* Verifies that package.json and cli/Cargo.toml have the same version.
* Used in CI to catch version drift.
*/
import { readFileSync } from 'fs';
import { dirname, join } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
const rootDir = join(__dirname, '..');
// Read package.json version
const packageJson = JSON.parse(readFileSync(join(rootDir, 'package.json'), 'utf-8'));
const packageVersion = packageJson.version;
// Read Cargo.toml version
const cargoToml = readFileSync(join(rootDir, 'cli/Cargo.toml'), 'utf-8');
const cargoVersionMatch = cargoToml.match(/^version\s*=\s*"([^"]*)"/m);
if (!cargoVersionMatch) {
console.error('Could not find version in cli/Cargo.toml');
process.exit(1);
}
const cargoVersion = cargoVersionMatch[1];
if (packageVersion !== cargoVersion) {
console.error('Version mismatch detected!');
console.error(` package.json: ${packageVersion}`);
console.error(` cli/Cargo.toml: ${cargoVersion}`);
console.error('');
console.error("Run 'pnpm run version:sync' to fix this.");
process.exit(1);
}
console.log(`Versions are in sync: ${packageVersion}`);