42b9cc2b64
Prettier: auto-formatted 103 files to fix baseline. Prettier check in CI is now a hard gate (removed continue-on-error). Brotli: installed libnginx-mod-http-brotli-filter/static. Enabled in nginx with brotli_static on for pre-compressed assets and comp_level 6. Sentry releases: deploy script now exports VITE_APP_VERSION=<git-short-sha> before building so each Sentry release maps to an exact commit. CI also passes github.sha as VITE_APP_VERSION. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
1.2 KiB
JavaScript
49 lines
1.2 KiB
JavaScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import { execSync } from 'child_process';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = path.dirname(__filename);
|
|
|
|
const version = process.argv[2];
|
|
|
|
if (!version) {
|
|
console.error('Version argument missing');
|
|
process.exit(1);
|
|
}
|
|
|
|
const root = path.resolve(__dirname, '..');
|
|
const newVersionTag = `v${version}`;
|
|
|
|
// Update package.json + package-lock.json safely
|
|
execSync(`npm version ${version} --no-git-tag-version`, {
|
|
cwd: root,
|
|
stdio: 'inherit',
|
|
});
|
|
|
|
console.log(`Updated package.json and package-lock.json → ${version}`);
|
|
|
|
// Update UI version references
|
|
const files = [
|
|
'src/app/features/settings/about/About.tsx',
|
|
'src/app/pages/auth/AuthFooter.tsx',
|
|
'src/app/pages/client/WelcomePage.tsx',
|
|
];
|
|
|
|
files.forEach((filePath) => {
|
|
const absPath = path.join(root, filePath);
|
|
|
|
if (!fs.existsSync(absPath)) {
|
|
console.warn(`File not found: ${filePath}`);
|
|
return;
|
|
}
|
|
|
|
const content = fs.readFileSync(absPath, 'utf8');
|
|
const updated = content.replace(/v\d+\.\d+\.\d+/g, newVersionTag);
|
|
|
|
fs.writeFileSync(absPath, updated);
|
|
|
|
console.log(`Updated ${filePath} → ${newVersionTag}`);
|
|
});
|