55 lines
1.6 KiB
JavaScript
Executable File
55 lines
1.6 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
import { readFileSync, existsSync } from 'node:fs';
|
|
import { join, dirname } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
import {
|
|
findRootDir,
|
|
runCommand,
|
|
getPackageVersion,
|
|
createAndPushTag
|
|
} from './utils.mjs';
|
|
|
|
const __filename = fileURLToPath(import.meta.url);
|
|
const __dirname = dirname(__filename);
|
|
|
|
const rootDir = findRootDir(__dirname);
|
|
const extensionPkgPath = join(rootDir, 'apps', 'extension', 'package.json');
|
|
|
|
console.log('🚀 Starting pre-release process...');
|
|
|
|
// Check if we're in RC mode
|
|
const preJsonPath = join(rootDir, '.changeset', 'pre.json');
|
|
if (!existsSync(preJsonPath)) {
|
|
console.error('⚠️ Not in RC mode. Run "npx changeset pre enter rc" first.');
|
|
process.exit(1);
|
|
}
|
|
|
|
try {
|
|
const preJson = JSON.parse(readFileSync(preJsonPath, 'utf8'));
|
|
if (preJson.tag !== 'rc') {
|
|
console.error(`⚠️ Not in RC mode. Current tag: ${preJson.tag}`);
|
|
process.exit(1);
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to read pre.json:', error.message);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Get current extension version
|
|
const extensionVersion = getPackageVersion(extensionPkgPath);
|
|
console.log(`Extension version: ${extensionVersion}`);
|
|
|
|
// Run changeset publish for npm packages
|
|
console.log('📦 Publishing npm packages...');
|
|
runCommand('npx', ['changeset', 'publish']);
|
|
|
|
// Create tag for extension pre-release if it doesn't exist
|
|
const extensionTag = `extension-rc@${extensionVersion}`;
|
|
const tagCreated = createAndPushTag(extensionTag);
|
|
|
|
if (tagCreated) {
|
|
console.log('This will trigger the extension-pre-release workflow...');
|
|
}
|
|
|
|
console.log('✅ Pre-release process completed!');
|