From e1661c4fbb5f44f56f6f1e05487f1008104f239a Mon Sep 17 00:00:00 2001 From: lauren Date: Thu, 17 Oct 2024 17:51:44 -0400 Subject: [PATCH] [compiler] Clean up publish script Few small tweaks to make it easier to run adhoc publishes --- compiler/scripts/release/publish.js | 60 ++++++++++++++++------------- 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/compiler/scripts/release/publish.js b/compiler/scripts/release/publish.js index ef3b75a80f..a7ad1a7254 100755 --- a/compiler/scripts/release/publish.js +++ b/compiler/scripts/release/publish.js @@ -59,12 +59,19 @@ async function main() { type: 'boolean', default: false, }) - .option('tags', { - description: 'Tags to publish to npm', - type: 'string', + .option('tag', { + description: 'Tag to publish to npm', + type: 'choices', + choices: ['experimental', 'beta'], default: 'experimental', }) + .option('version-name', { + description: 'Version name', + type: 'string', + default: '0.0.0', + }) .help('help') + .strict() .parseSync(); if (argv.debug === false) { @@ -82,7 +89,7 @@ async function main() { pkgNames = [argv.packages]; } const spinner = ora( - `Preparing to publish ${ + `Preparing to publish ${argv.versionName}@${argv.tag} ${ argv.forReal === true ? '(for real)' : '(dry run)' } [debug=${argv.debug}]` ).info(); @@ -118,14 +125,15 @@ async function main() { } ); const dateString = await getDateStringForCommit(commit); - const otp = argv.ci === false ? await promptForOTP() : null; + const otp = + argv.ci === false && argv.debug === false ? await promptForOTP() : null; const {hash} = await hashElement(path.resolve(__dirname, '../..'), { encoding: 'hex', folders: {exclude: ['node_modules']}, files: {exclude: ['.DS_Store']}, }); const truncatedHash = hash.slice(0, 7); - const newVersion = `0.0.0-experimental-${truncatedHash}-${dateString}`; + const newVersion = `${argv.versionName}-${argv.tag}-${truncatedHash}-${dateString}`; for (const pkgName of pkgNames) { const pkgDir = path.resolve(__dirname, `../../packages/${pkgName}`); @@ -179,29 +187,27 @@ async function main() { spinner.succeed(`Successfully published ${pkgName} to npm`); spinner.start('Pushing tags to npm'); - if (typeof argv.tags === 'string') { - for (const tag of argv.tags.split(',')) { - try { - let opts = ['dist-tag', 'add', `${pkgName}@${newVersion}`, tag]; - if (otp != null) { - opts.push(`--otp=${otp}`); - } - if (argv.debug === true) { - spinner.info(`dry-run: npm ${opts.join(' ')}`); - } else { - await spawnHelper('npm', opts, { - cwd: pkgDir, - stdio: 'inherit', - }); - } - } catch (e) { - spinner.fail(e.toString()); - throw e; + if (typeof argv.tag === 'string') { + try { + let opts = ['dist-tag', 'add', `${pkgName}@${newVersion}`, argv.tag]; + if (otp != null) { + opts.push(`--otp=${otp}`); } - spinner.succeed( - `Successfully pushed dist-tag ${tag} for ${pkgName} to npm` - ); + if (argv.debug === true) { + spinner.info(`dry-run: npm ${opts.join(' ')}`); + } else { + await spawnHelper('npm', opts, { + cwd: pkgDir, + stdio: 'inherit', + }); + } + } catch (e) { + spinner.fail(e.toString()); + throw e; } + spinner.succeed( + `Successfully pushed dist-tag ${argv.tag} for ${pkgName} to npm` + ); } }