From 47892d2e1b8f3613a07a4d6cabaee9e8a9409af7 Mon Sep 17 00:00:00 2001
From: Hans <hans@hansl.ca>
Date: Fri, 8 Jun 2018 14:41:27 -0700
Subject: [PATCH] ci: validate is really async and validate-commits should
 return errorcode

Instead of process.exit() which is a bit premature
---
 scripts/validate-commits.ts |  3 ++-
 scripts/validate.ts         | 10 ++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/scripts/validate-commits.ts b/scripts/validate-commits.ts
index e08675038e..5fbad68b78 100644
--- a/scripts/validate-commits.ts
+++ b/scripts/validate-commits.ts
@@ -145,8 +145,9 @@ export default function (argv: ValidateCommitsOptions, logger: logging.Logger) {
 
   if (invalidCount > 0) {
     logger.fatal(`${invalidCount} commits were found invalid...`);
-    process.exit(1);
   } else {
     logger.info('All green. Thank you, come again.');
   }
+
+  return invalidCount;
 }
diff --git a/scripts/validate.ts b/scripts/validate.ts
index 6d683874a8..74f2bb4603 100644
--- a/scripts/validate.ts
+++ b/scripts/validate.ts
@@ -13,7 +13,7 @@ import validateBuildFiles from './validate-build-files';
 import validateCommits from './validate-commits';
 import validateLicenses from './validate-licenses';
 
-export default function (options: { verbose: boolean }, logger: logging.Logger) {
+export default async function (options: { verbose: boolean }, logger: logging.Logger) {
   let error = false;
 
   logger.info('Running templates validation...');
@@ -21,7 +21,7 @@ export default function (options: { verbose: boolean }, logger: logging.Logger)
   if (execSync(`git status --porcelain`).toString()) {
     logger.error('There are local changes.');
     if (!options.verbose) {
-      process.exit(1);
+      return 101;
     }
     error = true;
   }
@@ -44,13 +44,15 @@ export default function (options: { verbose: boolean }, logger: logging.Logger)
 
   logger.info('');
   logger.info('Running license validation...');
-  validateLicenses({}, logger.createChild('validate-commits'));
+  error = await validateLicenses({}, logger.createChild('validate-commits')) != 0;
 
   logger.info('');
   logger.info('Running BUILD files validation...');
   validateBuildFiles({}, logger.createChild('validate-build-files'));
 
   if (error) {
-    process.exit(101);
+    return 101;
   }
+
+  return 0;
 }