Browse Source

Ensuring master branch when performing release

Dominik Prokop 7 years ago
parent
commit
18999df716
1 changed files with 12 additions and 0 deletions
  1. 12 0
      scripts/cli/tasks/grafanaui.release.ts

+ 12 - 0
scripts/cli/tasks/grafanaui.release.ts

@@ -83,7 +83,19 @@ const publishPackage = (name: string, version: string) =>
     await execa('npm', ['publish', '--access', 'public']);
     await execa('npm', ['publish', '--access', 'public']);
   })();
   })();
 
 
+const ensureMasterBranch = async () => {
+  const currentBranch = await execa.stdout('git', ['symbolic-ref', '--short', 'HEAD']);
+  const status = await execa.stdout('git', ['status', '--porcelain']);
+  console.log(status === '');
+
+  if (currentBranch !== 'master' && status !== '') {
+    console.error(chalk.red.bold('You need to be on clean master branch to release @grafana/ui'));
+    process.exit(1);
+  }
+};
+
 const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({ publishToNpm }) => {
 const releaseTaskRunner: TaskRunner<ReleaseTaskOptions> = async ({ publishToNpm }) => {
+  await ensureMasterBranch();
   await execTask(buildTask)();
   await execTask(buildTask)();
 
 
   let releaseConfirmed = false;
   let releaseConfirmed = false;