49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
// Load tempDirectory before it gets wiped by tool-cache
|
|
let tempDirectory = process.env['RUNNER_TEMPDIRECTORY'] || '';
|
|
|
|
import * as core from '@actions/core';
|
|
import * as tc from '@actions/tool-cache';
|
|
import * as path from 'path';
|
|
|
|
if (!tempDirectory) {
|
|
let baseLocation: string;
|
|
if (process.platform === 'win32') {
|
|
baseLocation = process.env['USERPROFILE'] || 'C:\\';
|
|
} else {
|
|
if (process.platform === 'darwin') {
|
|
baseLocation = '/Users';
|
|
} else {
|
|
baseLocation = '/home';
|
|
}
|
|
}
|
|
tempDirectory = path.join(baseLocation, 'actions', 'temp');
|
|
}
|
|
|
|
export async function getMaven(version: string) {
|
|
let toolPath: string;
|
|
toolPath = tc.find('maven', version);
|
|
|
|
if (!toolPath) {
|
|
toolPath = await downloadMaven(version);
|
|
}
|
|
|
|
toolPath = path.join(toolPath, 'bin');
|
|
core.addPath(toolPath);
|
|
}
|
|
|
|
async function downloadMaven(version: string): Promise<string> {
|
|
const toolDirectoryName = `apache-maven-${version}`
|
|
const downloadUrl =
|
|
`https://apache.org/dyn/closer.cgi?filename=maven/maven-3/${version}/binaries/${toolDirectoryName}-bin.tar.gz&action=download`
|
|
console.log(`downloading ${downloadUrl}`)
|
|
|
|
try {
|
|
const downloadPath = await tc.downloadTool(downloadUrl)
|
|
const extractedPath = await tc.extractTar(downloadPath)
|
|
let toolRoot = path.join(extractedPath, toolDirectoryName)
|
|
return await tc.cacheDir(toolRoot, 'maven', version)
|
|
} catch (err) {
|
|
throw err
|
|
}
|
|
}
|