Yaml 如何在azure管道中保留不同作业的环境
Stage可以为它的作业保留所有运行环境,但是我有几个不同的作业,从逻辑上讲不能组合到同一个Stage中。所有这些作业都有相同的运行环境,我不想对每个作业重复以下代码,如何将所有这些步骤抽象为某种函数并由每个作业调用。或者我如何为这些工作创造一个共享的环境。或者,我怎样才能保留环境,而不是将它们全部分组到同一个阶段Yaml 如何在azure管道中保留不同作业的环境,yaml,azure-pipelines,Yaml,Azure Pipelines,Stage可以为它的作业保留所有运行环境,但是我有几个不同的作业,从逻辑上讲不能组合到同一个Stage中。所有这些作业都有相同的运行环境,我不想对每个作业重复以下代码,如何将所有这些步骤抽象为某种函数并由每个作业调用。或者我如何为这些工作创造一个共享的环境。或者,我怎样才能保留环境,而不是将它们全部分组到同一个阶段 steps: - bash: echo "##vso[task.prependpath]$CONDA/bin" displayName: Add Con
steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add Conda to PATH
- bash: conda env update -f environment.yml --name $(Agent.Id)
displayName: Create Conda Environment
- bash: export PYTHONPATH="src/"
displayName: Add /src to PYTHONAPTH
- bash: source activate $(Agent.Id)
displayName: Active Test Environment
您可以将上述步骤放入模板yaml文件中。并用于在主管道Yaml文件中引用它 例如,使用上述代码创建一个模板yaml文件
setEnv.yml
#File: setEnv.yml
steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add Conda to PATH
- bash: conda env update -f environment.yml --name $(Agent.Id)
displayName: Create Conda Environment
...
使用template
引用上述模板文件
# File: azure-pipelines.yml
stages:
- stage: A
jobs:
- job: macOS
pool:
vmImage: 'macOS-10.14'
steps:
- template: setEnv.yml # Template reference
- othertasks:
- stage: B
jobs:
- job: Linux
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: setEnv.yml # Template reference
- othertasks:
查看文档以了解更多信息。我可以告诉您如何将其放入Azure-pipelines.yml文件中的代码块中,并在需要时引用它吗?恐怕目前无法做到这一点。YAML管道不支持引用其Azure-pipelines.yml文件中定义的代码块。