我只是将azure管道从微软托管代理移植到规模集代理(由于硬件要求),我正在努力安装python,因为规模集代理似乎更像自托管代理。
(旧)管道是这样开始的:
pool:
vmImage: 'ubuntu-latest'
jobs:
- job: Demo
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8'
displayName: 'Use Python 3.8'
只是将它移植到使用scale set pool(使用Ubuntu LTS VM镜像)的新管道,结果出现错误消息:
##[error]Version spec 3.8 for architecture x64 did not match any version in Agent.ToolsDirectory.
消息下面的链接指向如何配置自托管代理以使用此任务的指南,该指南告诉我,所有文件都需要存在于工具缓存目录中。但这需要创建一个新图像作为比例集的基础。或者在使用此任务之前下载并运行相应的github操作,该操作因error while loading shared libraries
而失败。
看一下这个任务的代码,我发现它意味着下载它的所有需求。但是基于这个问题,它只能从0.202.0版本开始可用,而管道中使用的版本是0.200.0。
所以基本问题是:
- 如何在刻度设置代理上使用此任务? 另外
:
- 如何强制使用特定的任务版本?
- 如何在tools缓存目录中安装所需的文件?
您可以做的是创建一个自定义vm,然后使用部署脚本指定python的版本。
有关此过程的深入解释,请参阅Atul Malaviya的文章。
同时,你必须在创建ti后删除虚拟机。