mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
- Introduced a new command for fetching and validating GitHub issues, allowing users to address issues directly from the command line. - Added a release command to bump the version of the application and build the Electron app, ensuring version consistency across UI and server packages. - Updated package.json files for both UI and server to version 0.7.1, reflecting the latest changes. - Implemented version utility in the server to read the version from package.json, enhancing version management across the application.
94 lines
3.0 KiB
JavaScript
Executable File
94 lines
3.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
/**
|
|
* Bumps the version in apps/ui/package.json and apps/server/package.json
|
|
* Usage: node scripts/bump-version.mjs [major|minor|patch]
|
|
* Example: node scripts/bump-version.mjs patch
|
|
*/
|
|
|
|
import { readFileSync, writeFileSync } from 'fs';
|
|
import { fileURLToPath } from 'url';
|
|
import { dirname, join } from 'path';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
const bumpType = process.argv[2]?.toLowerCase();
|
|
|
|
if (!bumpType || !['major', 'minor', 'patch'].includes(bumpType)) {
|
|
console.error('Error: Bump type argument is required');
|
|
console.error('Usage: node scripts/bump-version.mjs [major|minor|patch]');
|
|
console.error('Example: node scripts/bump-version.mjs patch');
|
|
process.exit(1);
|
|
}
|
|
|
|
const uiPackageJsonPath = join(__dirname, '..', 'package.json');
|
|
const serverPackageJsonPath = join(__dirname, '..', '..', 'server', 'package.json');
|
|
|
|
function bumpVersion(packageJsonPath: string, packageName: string): string {
|
|
try {
|
|
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
|
|
const oldVersion = packageJson.version;
|
|
|
|
// Parse version
|
|
const versionParts = oldVersion.split('.').map(Number);
|
|
if (versionParts.length !== 3) {
|
|
console.error(`Error: Invalid version format in ${packageName}: ${oldVersion}`);
|
|
console.error('Expected format: X.Y.Z (e.g., 1.2.3)');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Bump version
|
|
let [major, minor, patch] = versionParts;
|
|
|
|
switch (bumpType) {
|
|
case 'major':
|
|
major += 1;
|
|
minor = 0;
|
|
patch = 0;
|
|
break;
|
|
case 'minor':
|
|
minor += 1;
|
|
patch = 0;
|
|
break;
|
|
case 'patch':
|
|
patch += 1;
|
|
break;
|
|
}
|
|
|
|
const newVersion = `${major}.${minor}.${patch}`;
|
|
packageJson.version = newVersion;
|
|
|
|
writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf8');
|
|
|
|
return newVersion;
|
|
} catch (error) {
|
|
console.error(`Error bumping version in ${packageName}: ${error.message}`);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
try {
|
|
// Bump UI package version
|
|
const uiOldVersion = JSON.parse(readFileSync(uiPackageJsonPath, 'utf8')).version;
|
|
const uiNewVersion = bumpVersion(uiPackageJsonPath, '@automaker/ui');
|
|
|
|
// Bump server package version (sync with UI)
|
|
const serverOldVersion = JSON.parse(readFileSync(serverPackageJsonPath, 'utf8')).version;
|
|
const serverNewVersion = bumpVersion(serverPackageJsonPath, '@automaker/server');
|
|
|
|
// Verify versions match
|
|
if (uiNewVersion !== serverNewVersion) {
|
|
console.error(`Error: Version mismatch! UI: ${uiNewVersion}, Server: ${serverNewVersion}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log(`✅ Bumped version from ${uiOldVersion} to ${uiNewVersion} (${bumpType})`);
|
|
console.log(`📦 Updated @automaker/ui: ${uiOldVersion} -> ${uiNewVersion}`);
|
|
console.log(`📦 Updated @automaker/server: ${serverOldVersion} -> ${serverNewVersion}`);
|
|
console.log(`📦 Version is now: ${uiNewVersion}`);
|
|
} catch (error) {
|
|
console.error(`Error bumping version: ${error.message}`);
|
|
process.exit(1);
|
|
}
|
|
|