天蓝色管道中定义的参数的继承
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.
我有多个具有类似 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其他脚本也是如此。所以,如果我们看到这两个示例,参数保持不变,并且 jobs->steps->script 文件发生变化。我可以从单个文件中提取参数并将它们放在一个公共文件中,然后以某种方式在其他文件中扩展该文件吗?我看过这个例子,
名称:储蓄
参数:-姓名:run_mode type:string default:custom -姓名:app_version type:string default:uat阶段: -阶段:运行脚本 工作: -工作:脚本 步骤:脚本 -脚本:/mylocation/loans.sh -r ${{parameters.run_mode }} -a ${{ parameters.app_version}}
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.