天蓝色管道中定义的参数的继承

Inheritance for the parameters defined in azure pipelines

我有多个具有类似 azure YAML 文件的 azure 管道。这些 YAML 文件中定义的参数是重复的。如果我在一个普通的 YAML 文件中定义这些参数,它可以被继承吗?

##saving-account.yml 
名称:储蓄
参数:
 -姓名:run_mode
  type:string
  default:custom
 -姓名:app_version
  type:string
  default:uat

阶段:

-阶段:运行脚本
 工作:
  -工作:脚本
   步骤:脚本
     -脚本:/mylocation/savings.sh -r ${{parameters.run_mode }} -a ${{ parameters.app_version}}

这是储蓄账户管道。同样,我有 loan/mortgage 个帐户
##贷款-account.yml 
名称:储蓄
参数:
 -姓名:run_mode
  type:string
  default:custom
 -姓名:app_version
  type:string
  default:uat
阶段: -阶段:运行脚本 工作: -工作:脚本 步骤:脚本 -脚本:/mylocation/loans.sh -r ${{parameters.run_mode }} -a ${{ parameters.app_version}}
其他脚本也是如此。所以,如果我们看到这两个示例,参数保持不变,并且 jobs->steps->script 文件发生变化。我可以从单个文件中提取参数并将它们放在一个公共文件中,然后以某种方式在其他文件中扩展该文件吗?我看过这个例子,
https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops
它谈到将流程继承为模板,但我找不到使用通用参数的示例。我不想使用变量,因为我不确定在从 azure-pipelines UI 外部执行时是否可以更改它们。

恐怕我有一个简短的答案。你不能这样做。您不能重复使用公共参数。您可以只嵌套模板,但实际上仅此而已。

备选方案是在作业下使用可变 yaml 模板。此模板可以在管道之间引用相同的文件以减少冗余。将切换 ${{parameters.}}${{variables.}} 甚至可以根据参数切换变量组,在这种情况下是环境。

看起来像:

 jobs:
 -job: script
  variables:
  - template: ../variables/${{ parameters.environmentName }}.yml
  steps: script
  - script: /mylocation/loans.sh -r ${{variables.run_mode }} -a ${{ variables.app_version}}

variable.yml 文件可能如下所示:

variables:
 -name:run_mode
  type:string
  value:custom
 -name:app_version
  type:string
  value:uat

不完全符合您的要求,但可以替代多次定义相同的值。

这个变量文件可以是centrally located in another repo to.