本文整理汇总了TypeScript中azure-pipelines-tool-lib/tool.findLocalTool函数的典型用法代码示例。如果您正苦于以下问题:TypeScript findLocalTool函数的具体用法?TypeScript findLocalTool怎么用?TypeScript findLocalTool使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了findLocalTool函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: downloadDocker
export async function downloadDocker(version: string, releaseType: string): Promise<string> {
//docker does not follow strict semversion and has leading zeros in versions <10
var cleanVersion = version.replace(/(0+)([1-9]+)/,"$2");
var cachedToolpath = toolLib.findLocalTool(dockerToolName + "-" + releaseType, cleanVersion);
if (!cachedToolpath) {
try {
var dockerDownloadPath = await toolLib.downloadTool(getDockerDownloadURL(version, releaseType), dockerToolName + "-" + uuidV4() + getArchiveExtension());
} catch (exception) {
throw new Error(tl.loc("DockerDownloadFailed", getDockerDownloadURL(version, releaseType), exception));
}
var unzipedDockerPath;
if(isWindows) {
unzipedDockerPath = await toolLib.extractZip(dockerDownloadPath);
} else {
//tgz is a tar file packaged using gzip utility
unzipedDockerPath = await toolLib.extractTar(dockerDownloadPath);
}
//contents of the extracted archive are under "docker" directory. caching only "docker(.exe)" CLI
unzipedDockerPath = path.join(unzipedDockerPath, "docker", dockerToolNameWithExtension);
cachedToolpath = await toolLib.cacheFile(unzipedDockerPath, dockerToolNameWithExtension, dockerToolName+ "-" + releaseType, cleanVersion);
}
var Dockerpath = findDocker(cachedToolpath);
if (!Dockerpath) {
throw new Error(tl.loc("DockerNotFoundInFolder", cachedToolpath))
}
fs.chmodSync(Dockerpath, "777");
return Dockerpath;
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:34,代码来源:utils.ts
示例2: getArtifactToolFromService
export async function getArtifactToolFromService(serviceUri: string, accessToken: string, toolName: string){
const overrideArtifactToolPath = tl.getVariable("UPack.OverrideArtifactToolPath");
if (overrideArtifactToolPath != null) {
return getArtifactToolLocation(overrideArtifactToolPath);
}
let osName = tl.osType();
let arch = os.arch();
if (osName === "Windows_NT"){
osName = "windows";
}
if (arch === "x64"){
arch = "amd64";
}
// https://github.com/nodejs/node-v0.x-archive/issues/2862
if (arch === "ia32") {
if (process.env.PROCESSOR_ARCHITEW6432 != null && process.env.PROCESSOR_ARCHITEW6432.toUpperCase() === "AMD64") {
arch = "amd64";
}
}
if (arch.toLowerCase() !== "amd64") {
throw new Error(tl.loc("Error_ProcessorArchitectureNotSupported"));
}
const blobstoreAreaName = "clienttools";
const blobstoreAreaId = "187ec90d-dd1e-4ec6-8c57-937d979261e5";
const ApiVersion = "5.0-preview";
const blobstoreConnection = pkgLocationUtils.getWebApiWithProxy(serviceUri, accessToken);
const artifactToolGetUrl = await pkgLocationUtils.Retry(async () => {
return await blobstoreConnection.vsoClient.getVersioningData(ApiVersion,
blobstoreAreaName, blobstoreAreaId, { toolName }, {osName, arch});
}, 4, 100);
const artifactToolUri = await blobstoreConnection.rest.get(artifactToolGetUrl.requestUrl);
if (artifactToolUri.statusCode !== 200) {
tl.debug(tl.loc("Error_UnexpectedErrorFailedToGetToolMetadata", artifactToolUri.result.toString()));
throw new Error(tl.loc("Error_UnexpectedErrorFailedToGetToolMetadata", artifactToolGetUrl.requestUrl));
}
let artifactToolPath = toollib.findLocalTool(toolName, artifactToolUri.result['version']);
if (!artifactToolPath) {
tl.debug(tl.loc("Info_DownloadingArtifactTool", artifactToolUri.result['uri']));
const zippedToolsDir: string = await toollib.downloadTool(artifactToolUri.result['uri']);
tl.debug("Downloaded zipped artifact tool to " + zippedToolsDir);
const unzippedToolsDir = await extractZip(zippedToolsDir);
artifactToolPath = await toollib.cacheDir(unzippedToolsDir, "ArtifactTool", artifactToolUri.result['version']);
} else {
tl.debug(tl.loc("Info_ResolvedToolFromCache", artifactToolPath));
}
return getArtifactToolLocation(artifactToolPath);
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:60,代码来源:ArtifactToolUtilities.ts
示例3: getTfx
async function getTfx(versionSpec: string, checkLatest: boolean) {
if (toolLib.isExplicitVersion(versionSpec)) {
checkLatest = false; // check latest doesn't make sense when explicit version
}
let toolPath: string;
if (!checkLatest) {
toolPath = toolLib.findLocalTool('tfx', versionSpec);
}
if (!toolPath) {
let version: string;
if (toolLib.isExplicitVersion(versionSpec)) {
version = versionSpec;
}
else {
version = queryLatestMatch(versionSpec);
if (!version) {
throw new Error(`Unable to find Tfx version '${versionSpec}'`);
}
toolPath = toolLib.findLocalTool('tfx', version);
}
if (!toolPath) {
toolPath = await acquireTfx(version);
}
}
if (os.platform() !== "win32")
{
toolPath = path.join(toolPath, "/node_modules/.bin/");
}
taskLib.setVariable("__tfxpath", toolPath, false);
toolLib.prependPath(toolPath);
}
开发者ID:Microsoft,项目名称:vsts-extension-build-release-tasks,代码行数:37,代码来源:TfxInstaller.ts
示例4: useCpythonVersion
async function useCpythonVersion(parameters: Readonly<TaskParameters>, platform: Platform): Promise<void> {
const desugaredVersionSpec = desugarDevVersion(parameters.versionSpec);
const semanticVersionSpec = pythonVersionToSemantic(desugaredVersionSpec);
task.debug(`Semantic version spec of ${parameters.versionSpec} is ${semanticVersionSpec}`);
const installDir: string | null = tool.findLocalTool('Python', semanticVersionSpec, parameters.architecture);
if (!installDir) {
// Fail and list available versions
const x86Versions = tool.findLocalToolVersions('Python', 'x86')
.map(s => `${s} (x86)`)
.join(os.EOL);
const x64Versions = tool.findLocalToolVersions('Python', 'x64')
.map(s => `${s} (x64)`)
.join(os.EOL);
throw new Error([
task.loc('VersionNotFound', parameters.versionSpec, parameters.architecture),
task.loc('ListAvailableVersions', task.getVariable('Agent.ToolsDirectory')),
x86Versions,
x64Versions,
task.loc('ToolNotFoundMicrosoftHosted', 'Python', 'https://aka.ms/hosted-agent-software'),
task.loc('ToolNotFoundSelfHosted', 'Python', 'https://go.microsoft.com/fwlink/?linkid=871498')
].join(os.EOL));
}
task.setVariable('pythonLocation', installDir);
if (parameters.addToPath) {
toolUtil.prependPathSafe(installDir);
toolUtil.prependPathSafe(binDir(installDir, platform))
if (platform === Platform.Windows) {
// Add --user directory
// `installDir` from tool cache should look like $AGENT_TOOLSDIRECTORY/Python/<semantic version>/x64/
// So if `findLocalTool` succeeded above, we must have a conformant `installDir`
const version = path.basename(path.dirname(installDir));
const major = semver.major(version);
const minor = semver.minor(version);
const userScriptsDir = path.join(process.env['APPDATA'], 'Python', `Python${major}${minor}`, 'Scripts');
toolUtil.prependPathSafe(userScriptsDir);
}
// On Linux and macOS, pip will create the --user directory and add it to PATH as needed.
}
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:45,代码来源:usepythonversion.ts
示例5: downloadDuffle
async function downloadDuffle(version: string): Promise<string> {
let cachedToolPath = toolLib.findLocalTool(DuffleToolName, version);
if (!cachedToolPath) {
let duffleDownloadPath = '';
try {
duffleDownloadPath = getDuffleInstallPath();
const downloadUrl = getDuffleDownloadURL(version);
await download(downloadUrl, duffleDownloadPath, false, true);
} catch (exception) {
throw new Error(tl.loc('DownloadDuffleFailed', getDuffleDownloadURL(version), exception));
}
cachedToolPath = await toolLib.cacheFile(duffleDownloadPath, DuffleToolName + getExecutableExtension(), DuffleToolName, version);
}
const dufflePath = path.join(cachedToolPath, DuffleToolName + getExecutableExtension());
fs.chmod(dufflePath, '777');
return dufflePath;
}
开发者ID:Microsoft,项目名称:vsts-tasks,代码行数:19,代码来源:duffleinstaller.ts
示例6: _getLocalTool
//
// Helper methods
//
function _getLocalTool(version: string) {
console.log(taskLib.loc("AI_CheckToolCache"));
return toolLib.findLocalTool(advinstToolId, version, advinstToolArch);
}
开发者ID:Caphyon,项目名称:advinst-vsts-task,代码行数:7,代码来源:AdvinstTool.ts
注:本文中的azure-pipelines-tool-lib/tool.findLocalTool函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论