我可以与其他作业共享一个作业中安装的相同工作区吗?
尤其是,我想继续将一项工作中安装的软件共享给以后的工作。根据{{3}},
默认情况下,当您在自托管代理上运行管道时,两次连续运行之间都不会清除任何子目录。
但是,下面的此管道在作业 J2 中失败了,因为在作业 J1 中安装的sphinx
在 J2 中丢失了。 / p>
jobs:
- job: 'J1'
pool:
vmImage: 'Ubuntu-16.04'
strategy:
matrix:
Python37:
python.version: '3.7'
maxParallel: 3
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '$(python.version)'
architecture: 'x64'
- script: python -m pip install --upgrade pip
displayName: 'Install dependencies'
- script: pip install --upgrade pip
displayName: 'Update pip'
- script: |
echo "Publishing document for development version $(Build.BuildId)"
pip install -U sphinx
displayName: 'TEST J1'
- script: |
echo "TEST SPHINX"
sphinx-build --help
displayName: 'TEST SPHINX'
- job: 'J2'
dependsOn: 'J1'
steps:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
- script: |
echo "TEST SPHINX"
sphinx-build --help
displayName: 'TEST SPHINX'
答案 0 :(得分:0)
此错误与Workspace不相关。
是的,可以在作业之间共享工作空间,并且在您的代码中,sphinx
也位于您的工作空间中。 但是,它没有安装在作为全局路径的PATH
中,因此,当您以后要使用并执行它时,由于错误的PATH
值而失败。 / p>
在Ubuntu代理中,Pip
默认安装了--user
。这是代理用户,代理在您创建和使用VM映像时没有。如果您没有任何更改代码,则默认情况下会将其安装到~/.local/bin
而非PATH
上。
要解决此问题,您需要确保可以在PATH
中找到正在使用的命令。如果该命令不在您的路径中,请包括它或使用绝对的完整路径。
因此,您应该使用 export
手动指定PATH值:
export PATH="xxx"
您可以检查此blog以获得更多详细信息。