从Azure DevOps管道模板访问调用文件夹的文件

时间:2020-11-10 17:33:27

标签: azure-pipelines-yaml

azure管道模板保存在单独的存储库中。当前,多个具有相同结构的python项目正在调用同一模板。在每个项目中,根文件夹中都有一个enviroment.yml文件,将选择该文件来创建python环境。我想将这部分封装到模板中(请参见下面的代码Spinet)。

stages:

- stage: test
  displayName: Test
  dependsOn: []
  pool:
    vmImage: ${{parameters.vmImageName}}
  jobs:
    - job: test_environment 
      displayName: Test environment

      steps:
        - bash: |
            echo "##vso[task.prependpath]$CONDA/bin"
            conda env create -f environment.yml --name $(Agent.Id)  //Issue!
            echo $(Agent.Id)
            export PYTHONPATH="src/"
            source activate $(Agent.Id)
          displayName: Create Conda Environment

对于用问题!注释的行,管道似乎从存储模板的根文件夹中寻找enviroment.yml。我该如何要求模板在不使用参数输入的情况下从调用文件夹的根目录中选择yml文件?

1 个答案:

答案 0 :(得分:0)

您可以使用predefined variables中的一个(即System.DefaultWorkingDirectoryPipeline.Workspace)来指定environment.yaml的绝对路径:

conda env create -f $(System.DefaultWorkingDirectory)/environment.yml --name $(Agent.Id)