Add runner ci (test)
This commit is contained in:
83
tools/set-release-version.js
Normal file
83
tools/set-release-version.js
Normal file
@@ -0,0 +1,83 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { syncServerBuildVersion } = require('./sync-server-build-version.js');
|
||||
|
||||
const rootDir = path.resolve(__dirname, '..');
|
||||
const packageJsonPaths = [
|
||||
path.join(rootDir, 'package.json'),
|
||||
path.join(rootDir, 'server', 'package.json')
|
||||
];
|
||||
|
||||
function parseArgs(argv) {
|
||||
const args = {};
|
||||
|
||||
for (let index = 0; index < argv.length; index += 1) {
|
||||
const token = argv[index];
|
||||
|
||||
if (!token.startsWith('--')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const key = token.slice(2);
|
||||
const nextToken = argv[index + 1];
|
||||
|
||||
if (!nextToken || nextToken.startsWith('--')) {
|
||||
args[key] = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
args[key] = nextToken;
|
||||
index += 1;
|
||||
}
|
||||
|
||||
return args;
|
||||
}
|
||||
|
||||
function normalizeVersion(rawValue) {
|
||||
if (typeof rawValue !== 'string') {
|
||||
return null;
|
||||
}
|
||||
|
||||
const trimmedValue = rawValue.trim();
|
||||
|
||||
if (!trimmedValue) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const normalized = trimmedValue.replace(/^v/i, '').split('+')[0] || null;
|
||||
|
||||
return normalized && /^(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?$/.test(normalized)
|
||||
? normalized
|
||||
: null;
|
||||
}
|
||||
|
||||
function updatePackageJson(filePath, version) {
|
||||
const packageJson = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
packageJson.version = version;
|
||||
fs.writeFileSync(filePath, `${JSON.stringify(packageJson, null, 2)}\n`, 'utf8');
|
||||
}
|
||||
|
||||
function main() {
|
||||
const args = parseArgs(process.argv.slice(2));
|
||||
const version = normalizeVersion(args.version || process.env.RELEASE_VERSION);
|
||||
|
||||
if (!version) {
|
||||
throw new Error('A valid semver release version is required. Pass it with --version.');
|
||||
}
|
||||
|
||||
for (const packageJsonPath of packageJsonPaths) {
|
||||
updatePackageJson(packageJsonPath, version);
|
||||
}
|
||||
|
||||
syncServerBuildVersion(version);
|
||||
console.log(`[release-version] Updated package versions to ${version}`);
|
||||
}
|
||||
|
||||
try {
|
||||
main();
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : String(error);
|
||||
|
||||
console.error(`[release-version] ${message}`);
|
||||
process.exitCode = 1;
|
||||
}
|
||||
Reference in New Issue
Block a user