diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index 42af5f1..9228bf9 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -1,3 +1,3 @@ -describe("TODO - Add a test suite", () => { - it("TODO - Add a test", async () => {}); -}); +describe('TODO - Add a test suite', () => { + it('TODO - Add a test', async () => {}) +}) diff --git a/lib/setup-julia.js b/lib/setup-julia.js index e12c5c3..7871af9 100644 --- a/lib/setup-julia.js +++ b/lib/setup-julia.js @@ -17,26 +17,25 @@ var __importStar = (this && this.__importStar) || function (mod) { Object.defineProperty(exports, "__esModule", { value: true }); const core = __importStar(require("@actions/core")); const exec = __importStar(require("@actions/exec")); +const tc = __importStar(require("@actions/tool-cache")); const os = __importStar(require("os")); +const path = __importStar(require("path")); function run() { return __awaiter(this, void 0, void 0, function* () { try { - const version = core.getInput("version"); - core.debug(`selected Julia version: ${version}`); + const version = core.getInput('version'); + console.log(`[DEBUG] selected Julia version: ${version}`); // Store information about the environment const osPlat = os.platform(); const osArch = os.arch(); - // For now, just download Linux x64 binaries - yield exec.exec("curl", [ - "-O", - "https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.1-linux-x86_64.tar.gz" - ]); - yield exec.exec("tar xf julia-1.0.1-linux-x86_64.tar.gz"); - // Add the downloaded binary to path - core.addPath("julia-1.0.1/bin"); + // For now, just download Linux x64 binaries and add it to PATH + const juliaDownloadPath = yield tc.downloadTool('https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.4-linux-x86_64.tar.gz'); + const juliaExtractedFolder = yield tc.extractTar(juliaDownloadPath); + const juliaCachedPath = yield tc.cacheDir(juliaExtractedFolder, 'julia', '1.0.4', 'x64'); + const juliaPath = path.join(juliaCachedPath, 'julia-1.0.4'); + core.addPath(path.join(juliaPath, 'bin')); // Test if it worked - yield exec.exec("julia", ["--version"]); - yield exec.exec("julia", ["-e", "'using InteractiveUtils; versioninfo()'"]); + yield exec.exec('julia', ['-e', 'using InteractiveUtils; versioninfo()']); } catch (error) { core.setFailed(error.message); diff --git a/src/setup-julia.ts b/src/setup-julia.ts index f1b84cc..8124342 100644 --- a/src/setup-julia.ts +++ b/src/setup-julia.ts @@ -1,32 +1,33 @@ -import * as core from "@actions/core"; -import * as exec from "@actions/exec"; +import * as core from '@actions/core' +import * as exec from '@actions/exec' +import * as tc from '@actions/tool-cache' -import * as os from "os"; +import * as os from 'os' +import * as path from 'path' async function run() { - try { - const version = core.getInput("version"); - core.debug(`selected Julia version: ${version}`); + try { + const version = core.getInput('version') + console.log(`[DEBUG] selected Julia version: ${version}`) - // Store information about the environment - const osPlat = os.platform(); - const osArch = os.arch(); + // Store information about the environment + const osPlat = os.platform() + const osArch = os.arch() - // For now, just download Linux x64 binaries - await exec.exec("curl", [ - "-O", - "https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.1-linux-x86_64.tar.gz" - ]); - await exec.exec("tar xf julia-1.0.1-linux-x86_64.tar.gz"); + // For now, just download Linux x64 binaries and add it to PATH + const juliaDownloadPath = await tc.downloadTool( + 'https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.4-linux-x86_64.tar.gz' + ) + const juliaExtractedFolder = await tc.extractTar(juliaDownloadPath) + const juliaCachedPath = await tc.cacheDir(juliaExtractedFolder, 'julia', '1.0.4', 'x64') + const juliaPath = path.join(juliaCachedPath, 'julia-1.0.4') + core.addPath(path.join(juliaPath, 'bin')) - // Add the downloaded binary to path - core.addPath("julia-1.0.1/bin"); - - // Test if it worked - await exec.exec("julia", ["--version"]); - } catch (error) { - core.setFailed(error.message); - } + // Test if it worked + await exec.exec('julia', ['-e', 'using InteractiveUtils; versioninfo()']) + } catch (error) { + core.setFailed(error.message) + } } -run(); +run()