From 150b236468dcb16ee08bb8e6ee0bbe43c3c2a3d4 Mon Sep 17 00:00:00 2001 From: Ibby Hadeed Date: Fri, 24 Mar 2017 15:42:52 -0400 Subject: [PATCH] chore(publish): a way to re-try in case something happens --- scripts/build/publish.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/build/publish.js b/scripts/build/publish.js index 7dea1cca..184dda82 100644 --- a/scripts/build/publish.js +++ b/scripts/build/publish.js @@ -13,6 +13,7 @@ const FLAGS = '--access public'; // add any flags here if you want... (example: const PACKAGES = fs.readdirSync(DIST); +const failedPackages = []; const QUEUE = queue({ concurrency: 10 @@ -26,7 +27,15 @@ PACKAGES.forEach(packageName => { const packagePath = path.resolve(DIST, packageName); exec(`npm publish ${packagePath} ${FLAGS}`) .then(() => done()) - .catch(done); + .catch((e) => { + if (e.stderr && e.stderr.indexOf('previously published version') === -1) { + failedPackages.push({ + cmd: e.cmd, + stderr: e.stderr + }); + } + done(); + }); }); @@ -36,9 +45,14 @@ QUEUE.start((err) => { if (err) { console.log('Error publishing ionic-native. ', err); + } else if (failedPackages.length > 0) { + console.log(`${failedPackages.length} packages failed to publish.`); + console.log(failedPackages); } else { console.log('Done publishing ionic-native!'); } + + });