diff --git a/main.js b/main.js index 679ae34..1b55e87 100644 --- a/main.js +++ b/main.js @@ -14,32 +14,49 @@ async function main() { discardDescriptor: true, }); - fs.mkdirSync(homedir + '/.kube', { - recursive: true, - }); - fs.appendFileSync( - homedir + '/.kube/config', - "\r\n\r\n" + process.env.INPUT_KUBECONFIG, - { - mode: 0o600, - } - ); + const kubeConfigLocation = homedir + '/.kube/config'; + const kubeConfigExists = fs.existsSync(kubeConfigLocation); + if (kubeConfigExists) { + console.log("\033[36mExisting kubeconfig found, using that and ignoring input\033[0m"); + } else { + console.log("\033[36mUsing kubeconfig from input\033[0m"); + fs.mkdirSync(homedir + '/.kube', { + recursive: true, + }); + fs.appendFileSync( + kubeConfigLocation, + "\r\n\r\n" + process.env.INPUT_KUBECONFIG, + { + mode: 0o600, + } + ); + } + console.log("\033[36mPreparing helm execution\033[0m"); fs.appendFileSync(execShFile.name, process.env.INPUT_EXEC); await waitFile({ resources: [ - homedir + '/.kube/config', + kubeConfigLocation, execShFile.name, ], }); try { + console.log("\033[36mExecuting helm\033[0m"); const result = execFileSync(execShFile.name).toString(); console.log(result); console.log('::set-output name=helm_output::' + result.split('%').join('%25').split('\n').join('%0A').split('\r').join('%0D')); } catch (error) { process.exit(1); + } finally { + console.log("\033[36mCleaning up: \033[0m"); + fs.unlinkSync(execShFile.name); + console.log("\033[36m - exec ✅ \033[0m"); + if (!kubeConfigExists) { + fs.unlinkSync(kubeConfigLocation); + console.log("\033[36m - kubeconfig ✅ \033[0m"); + } } }