From 9f8be24be6febd2824c5906cc6dc3acc533461a2 Mon Sep 17 00:00:00 2001 From: Bas Zalmstra Date: Fri, 22 Jan 2021 10:55:13 +0100 Subject: [PATCH] feat: added extraction retry --- .github/actions/install-llvm/dist/index.js | 30 ++++++++++++++-------- .github/actions/install-llvm/index.js | 30 ++++++++++++++-------- 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/.github/actions/install-llvm/dist/index.js b/.github/actions/install-llvm/dist/index.js index ec83d43c0..485afc5fd 100644 --- a/.github/actions/install-llvm/dist/index.js +++ b/.github/actions/install-llvm/dist/index.js @@ -1195,18 +1195,28 @@ async function execute(cmd) { core.info("Succesfully downloaded LLVM release, extracting...") const llvmPath = path.resolve("llvm"); const _7zPath = path.join(__dirname, '..', 'externals', '7zr.exe'); - const args = [ - "-bsp1", // output log info - "x", // extract - downloadLocation, - `-o${llvmPath}` - ] - const exit = await exec.exec(_7zPath, args); - if(exit !== 0) { - throw new Error("Could not extract LLVM and Clang binaries."); + let attempt = 1; + while(true) { + const args = [ + "x", // extract + downloadLocation, + `-o${llvmPath}` + ] + const exit = await exec.exec(_7zPath, args); + if(exit === 2 && attempt <= 4) { + attempt += 1; + console.error(`Error extracting LLVM release, retrying attempt #${attempt} after 1s..`) + await new Promise(resolve => setTimeout(resolve, 1000)); + } + else if (exit !== 0) { + throw new Error("Could not extract LLVM and Clang binaries."); + } + else { + core.info("Succesfully extracted LLVM release") + break; + } } - core.info("Succesfully extracted LLVM release") core.addPath(`${llvmPath}/bin`) core.exportVariable('LIBCLANG_PATH', `${llvmPath}/bin`) } else { diff --git a/.github/actions/install-llvm/index.js b/.github/actions/install-llvm/index.js index 9f8efac75..475ef0e06 100644 --- a/.github/actions/install-llvm/index.js +++ b/.github/actions/install-llvm/index.js @@ -43,18 +43,28 @@ export async function execute(cmd) { core.info("Succesfully downloaded LLVM release, extracting...") const llvmPath = path.resolve("llvm"); const _7zPath = path.join(__dirname, '..', 'externals', '7zr.exe'); - const args = [ - "-bsp1", // output log info - "x", // extract - downloadLocation, - `-o${llvmPath}` - ] - const exit = await exec.exec(_7zPath, args); - if(exit !== 0) { - throw new Error("Could not extract LLVM and Clang binaries."); + let attempt = 1; + while(true) { + const args = [ + "x", // extract + downloadLocation, + `-o${llvmPath}` + ] + const exit = await exec.exec(_7zPath, args); + if(exit === 2 && attempt <= 4) { + attempt += 1; + console.error(`Error extracting LLVM release, retrying attempt #${attempt} after 1s..`) + await new Promise(resolve => setTimeout(resolve, 1000)); + } + else if (exit !== 0) { + throw new Error("Could not extract LLVM and Clang binaries."); + } + else { + core.info("Succesfully extracted LLVM release") + break; + } } - core.info("Succesfully extracted LLVM release") core.addPath(`${llvmPath}/bin`) core.exportVariable('LIBCLANG_PATH', `${llvmPath}/bin`) } else {