diff --git a/dist/index.js b/dist/index.js index fe8a57fd..283f8139 100644 --- a/dist/index.js +++ b/dist/index.js @@ -38,8 +38,19 @@ async function downloadCLI (url) { core.debug(`Downloading Terraform CLI from ${url}`); const pathToCLIZip = await tc.downloadTool(url); + let pathToCLI = ''; + core.debug('Extracting Terraform CLI zip file'); - const pathToCLI = await tc.extractZip(pathToCLIZip); + if (os.platform().startsWith('win')) { + core.debug(`Terraform CLI Download Path is ${pathToCLIZip}`); + const fixedPathToCLIZip = `${pathToCLIZip}.zip`; + io.mv(pathToCLIZip, fixedPathToCLIZip); + core.debug(`Moved download to ${fixedPathToCLIZip}`); + pathToCLI = await tc.extractZip(fixedPathToCLIZip); + } else { + pathToCLI = await tc.extractZip(pathToCLIZip); + } + core.debug(`Terraform CLI path is ${pathToCLI}.`); if (!pathToCLIZip || !pathToCLI) { diff --git a/lib/setup-terraform.js b/lib/setup-terraform.js index 2f0b8bf6..1e61d2c5 100644 --- a/lib/setup-terraform.js +++ b/lib/setup-terraform.js @@ -32,8 +32,19 @@ async function downloadCLI (url) { core.debug(`Downloading Terraform CLI from ${url}`); const pathToCLIZip = await tc.downloadTool(url); + let pathToCLI = ''; + core.debug('Extracting Terraform CLI zip file'); - const pathToCLI = await tc.extractZip(pathToCLIZip); + if (os.platform().startsWith('win')) { + core.debug(`Terraform CLI Download Path is ${pathToCLIZip}`); + const fixedPathToCLIZip = `${pathToCLIZip}.zip`; + io.mv(pathToCLIZip, fixedPathToCLIZip); + core.debug(`Moved download to ${fixedPathToCLIZip}`); + pathToCLI = await tc.extractZip(fixedPathToCLIZip); + } else { + pathToCLI = await tc.extractZip(pathToCLIZip); + } + core.debug(`Terraform CLI path is ${pathToCLI}.`); if (!pathToCLIZip || !pathToCLI) { diff --git a/test/setup-terraform.test.js b/test/setup-terraform.test.js index fa2fd337..367de90b 100644 --- a/test/setup-terraform.test.js +++ b/test/setup-terraform.test.js @@ -94,6 +94,8 @@ describe('Setup Terraform', () => { .fn() .mockReturnValueOnce('file.zip'); + io.mv = jest.fn(); + tc.extractZip = jest .fn() .mockReturnValueOnce('file');