From a6cfc31f7ab2a8133823640690e0ae40216cd202 Mon Sep 17 00:00:00 2001 From: Oliver King Date: Wed, 19 Oct 2022 13:27:21 -0400 Subject: [PATCH] Fix private cluster kubectl exit code bug (#252) * add private cluster exitCode check * add proper output --- src/types/privatekubectl.ts | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/types/privatekubectl.ts b/src/types/privatekubectl.ts index f7e8c047..390ae3e8 100644 --- a/src/types/privatekubectl.ts +++ b/src/types/privatekubectl.ts @@ -10,7 +10,11 @@ export class PrivateKubectl extends Kubectl { args.unshift('kubectl') let kubectlCmd = args.join(' ') let addFileFlag = false - let eo = {silent} + let eo = { + silent: true, + failOnStdErr: false, + ignoreReturnCode: true + } if (this.containsFilenames(kubectlCmd)) { // For private clusters, files will referenced solely by their basename @@ -52,7 +56,25 @@ export class PrivateKubectl extends Kubectl { core.debug( `private cluster Kubectl run with invoke command: ${kubectlCmd}` ) - return await getExecOutput('az', privateClusterArgs, eo) + + const runOutput = await getExecOutput( + 'az', + [...privateClusterArgs, '-o', 'json'], + eo + ) + const runObj: {logs: string; exitCode: number} = JSON.parse( + runOutput.stdout + ) + if (!silent) core.info(runObj.logs) + if (runOutput.exitCode !== 0 && runObj.exitCode !== 0) { + throw Error(`failed private cluster Kubectl command: ${kubectlCmd}`) + } + + return { + exitCode: runObj.exitCode, + stdout: runObj.logs, + stderr: '' + } as ExecOutput } private replaceFilnamesWithBasenames(kubectlCmd: string) {