From bb535ea886d5f8eadb93c206884a5f23d57becc2 Mon Sep 17 00:00:00 2001 From: James Ives Date: Wed, 27 Apr 2022 11:01:57 +0000 Subject: [PATCH] =?UTF-8?q?Deploy=20Production=20Code=20for=20Commit=20c46?= =?UTF-8?q?739c7bde38a88939bc4a71b5b618bb0fd214f=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/git.js | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/lib/git.js b/lib/git.js index 7ba2556c..a7d4c2f9 100644 --- a/lib/git.js +++ b/lib/git.js @@ -26,24 +26,30 @@ function init(action) { try { (0, core_1.info)(`Deploying using ${action.tokenType}… 🔑`); (0, core_1.info)('Configuring git…'); - // Keep trying to configure Git with various different methods until it works with a maximum of 2 attempts. - const ATTEMPT_LIMIT = 2; - let attempt = 0; - let rejected = false; - do { - attempt++; - if (attempt > ATTEMPT_LIMIT) { - throw new Error(); - } - if (attempt > 1) { - yield (0, execute_1.execute)(`git init`, action.workspace, action.silent); - yield (0, execute_1.execute)(`git commit -m "Initial commit" --allow-empty`, action.workspace, action.silent); - } - yield (0, execute_1.execute)(`git config --global --add safe.directory "${action.workspace}"`, action.workspace, action.silent); - yield (0, execute_1.execute)(`git config user.name "${action.name}"`, action.workspace, action.silent); - yield (0, execute_1.execute)(`git config user.email "${action.email}"`, action.workspace, action.silent); - yield (0, execute_1.execute)(`git config core.ignorecase false`, action.workspace, action.silent); - } while (rejected); + function configureGit(throwOnError) { + return __awaiter(this, void 0, void 0, function* () { + try { + yield (0, execute_1.execute)(`git config --global --add safe.directory "${action.workspace}"`, action.workspace, action.silent); + yield (0, execute_1.execute)(`git config user.name "${action.name}"`, action.workspace, action.silent); + yield (0, execute_1.execute)(`git config user.email "${action.email}"`, action.workspace, action.silent); + yield (0, execute_1.execute)(`git config core.ignorecase false`, action.workspace, action.silent); + } + catch (_a) { + if (throwOnError) { + throw new Error(); + } + } + }); + } + try { + yield configureGit(false); + } + catch (_a) { + // Attempt to re-run if initial configuration failed using git init. + yield (0, execute_1.execute)(`git init`, action.workspace, action.silent); + yield (0, execute_1.execute)(`git commit -m "Initial commit" --allow-empty`, action.workspace, action.silent); + yield configureGit(true); + } try { if ((process.env.CI && !action.sshKey) || action.isTest) { /* Ensures that previously set Git configs do not interfere with the deployment. @@ -55,7 +61,7 @@ function init(action) { throw new Error(); } } - catch (_a) { + catch (_b) { (0, core_1.info)('Unable to unset previous git config authentication as it may not exist, continuing…'); } try { @@ -64,7 +70,7 @@ function init(action) { throw new Error(); } } - catch (_b) { + catch (_c) { (0, core_1.info)('Attempted to remove origin but failed, continuing…'); } yield (0, execute_1.execute)(`git remote add origin ${action.repositoryPath}`, action.workspace, action.silent);