From e9130210ccae77f3cc3a3258d1912c7560b5e423 Mon Sep 17 00:00:00 2001 From: Dominik Prokop Date: Wed, 22 May 2019 14:10:13 +0200 Subject: [PATCH] Build: Fix final prompt for @grafana/ui npm publish confirmation Fixes issue of the final confirmation prompt (the one to confirm the actual npm publish) being invisible, making it impossible to release by anyone but me. Also, before the release is created I'm assuring previous release bundle is remove (otherwise tests and checks would fail) --- scripts/cli/tasks/grafanaui.build.ts | 2 +- scripts/cli/tasks/grafanaui.release.ts | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/scripts/cli/tasks/grafanaui.build.ts b/scripts/cli/tasks/grafanaui.build.ts index 6fce809bef9..1a48bb1a724 100644 --- a/scripts/cli/tasks/grafanaui.build.ts +++ b/scripts/cli/tasks/grafanaui.build.ts @@ -7,7 +7,7 @@ import { Task, TaskRunner } from './task'; let distDir, cwd; -const clean = useSpinner('Cleaning', async () => await execa('npm', ['run', 'clean'])); +export const clean = useSpinner('Cleaning', async () => await execa('npm', ['run', 'clean'])); const compile = useSpinner('Compiling sources', () => execa('tsc', ['-p', './tsconfig.build.json'])); diff --git a/scripts/cli/tasks/grafanaui.release.ts b/scripts/cli/tasks/grafanaui.release.ts index f0e53a4e7ba..03bcdd0219e 100644 --- a/scripts/cli/tasks/grafanaui.release.ts +++ b/scripts/cli/tasks/grafanaui.release.ts @@ -1,11 +1,11 @@ import execa from 'execa'; import { execTask } from '../utils/execTask'; -import { changeCwdToGrafanaUiDist, changeCwdToGrafanaUi } from '../utils/cwd'; +import { changeCwdToGrafanaUiDist, changeCwdToGrafanaUi, restoreCwd } from '../utils/cwd'; import semver from 'semver'; import inquirer from 'inquirer'; import chalk from 'chalk'; import { useSpinner } from '../utils/useSpinner'; -import { savePackage, buildTask } from './grafanaui.build'; +import { savePackage, buildTask, clean } from './grafanaui.build'; import { TaskRunner, Task } from './task'; type VersionBumpType = 'prerelease' | 'patch' | 'minor' | 'major'; @@ -81,12 +81,6 @@ const bumpVersion = (version: string) => const publishPackage = (name: string, version: string) => useSpinner(`Publishing ${name} @ ${version} to npm registry...`, async () => { changeCwdToGrafanaUiDist(); - console.log(chalk.yellowBright.bold(`\nReview dist package.json before proceeding!\n`)); - const { confirmed } = await promptConfirm('Are you ready to publish to npm?'); - - if (!confirmed) { - process.exit(); - } await execa('npm', ['publish', '--access', 'public']); })(); @@ -111,13 +105,18 @@ const releaseTaskRunner: TaskRunner = async ({ usePackageJsonVersion, createVersionCommit, }) => { - await runChecksAndTests(); + changeCwdToGrafanaUi(); + await clean(); // Clean previous build if exists + restoreCwd(); + if (publishToNpm) { // TODO: Ensure release branch // When need to update this when we star keeping @grafana/ui releases in sync with core await ensureMasterBranch(); } + runChecksAndTests(); + await execTask(buildTask)(); let releaseConfirmed = false; @@ -169,6 +168,13 @@ const releaseTaskRunner: TaskRunner = async ({ } if (publishToNpm) { + console.log(chalk.yellowBright.bold(`\nReview dist package.json before proceeding!\n`)); + const { confirmed } = await promptConfirm('Are you ready to publish to npm?'); + + if (!confirmed) { + process.exit(); + } + await publishPackage(pkg.name, nextVersion); console.log(chalk.green(`\nVersion ${nextVersion} of ${pkg.name} succesfully released!`)); console.log(chalk.yellow(`\nUpdated @grafana/ui/package.json with version bump created.`));