/** * Dry Run Example * * Test release without making actual changes */ import { prepareRelease, publishToNpm, validate } from '@claude-flow/deployment'; async function dryRunRelease() { console.log('Dry Run Mode - Testing release without changes\n'); // Validate package console.log('1. Validating package...'); const validation = await validate(); if (!validation.valid) { console.log(' ⚠️ Validation issues found:'); validation.errors.forEach(err => console.log(` - ${err}`)); console.log('\n (Continuing anyway in dry-run mode)\n'); } else { console.log(' ✅ Package validation passed\n'); } // Prepare release (dry run) console.log('2. Preparing release (dry run)...'); const release = await prepareRelease({ bumpType: 'minor', generateChangelog: true, createTag: true, commit: true, dryRun: true // No actual changes }); if (release.success) { console.log(' Would create release:'); console.log(` Version: ${release.oldVersion} → ${release.newVersion}`); console.log(` Tag: ${release.tag}`); console.log(' \n Generated changelog:'); if (release.changelog) { release.changelog.split('\n').forEach(line => { console.log(` ${line}`); }); } console.log(); } // Publish (dry run) console.log('3. Publishing to npm (dry run)...'); const publish = await publishToNpm({ tag: 'latest', access: 'public', dryRun: true // No actual publish }); if (publish.success) { console.log(' Would publish:'); console.log(` Package: ${publish.packageName}@${publish.version}`); console.log(` Tag: ${publish.tag}`); console.log(); } console.log('✅ Dry run completed - no changes were made'); console.log(' To perform actual release, remove dryRun: true option'); } // Run dry run dryRunRelease().catch(error => { console.error('Dry run failed:', error); process.exit(1); });