如何在Azure Pipeline中引用YAML文件所在的文件夹路径?
如何参数化Azure Pipelines中存放pipeline.yml的文件夹路径?
你可以利用Azure Pipelines的内置变量System.DefinitionPath结合表达式,自动提取当前流水线YAML文件所在的文件夹路径,无需手动硬编码。
修改后的通用流水线配置
variables: # 从流水线定义路径中自动提取所在文件夹 pipelineFolder: ${{ replace(System.DefinitionPath, '/azure-pipelines.yml', '') }} trigger: batch: true branches: include: - dev - main paths: include: - '${{ variables.pipelineFolder }}' pr: autoCancel: false branches: include: - dev - main paths: include: - '${{ variables.pipelineFolder }}' resources: repositories: - repository: templates type: git name: devops ref: 'refs/heads/main' extends: template: pipelines\dbr-job-template.yml@templates parameters: sourceFolder: '${{ variables.pipelineFolder }}'
关键说明
System.DefinitionPath是Azure Pipelines内置变量,返回当前流水线YAML文件在仓库中的完整路径(例如/job-1-folder/azure-pipelines.yml)- 通过
replace表达式移除路径末尾的/azure-pipelines.yml,自动得到存放YAML的文件夹路径 - 所有需要引用该文件夹的位置(触发器路径、PR路径、模板参数)都使用
${{ variables.pipelineFolder }},实现完全参数化,用户无需手动修改文件夹名称
内容的提问来源于stack exchange,提问作者roijoris
相关产品推荐
相关产品推荐

