templates - Azure DevOps Pipeline:一个阶段两次使用相同的模板
问题描述
在我的一个阶段的主要管道中,我用稍微不同的数据调用了两次相同的(部署)模板:
//pipeline.yml
- stage: dev
condition: and(succeeded(), eq('${{ parameters.environment }}', 'dev'))
variables:
getCommitDate: $[ stageDependencies.prepare_date.set_date.outputs['setCommitDate.rollbackDate'] ]
jobs:
- template: mssql/jobs/liquibase.yml@templates
parameters:
command: update
username: $(username_dev)
password: $(password_dev)
environment: exampleEnv
databaseName: exampleDB
databaseIP: 123456789
context: dev
checkoutStep:
bash: git checkout ${{parameters.commitHash}} -- ./src/main/resources/objects
- template: mssql/jobs/liquibase.yml@templates
parameters:
command: rollbackToDate $(getCommitDate)
username: $(username_dev)
password: $(password_dev)
environment: exampleEnv
databaseName: exampleDB
databaseIP: 123456789
context: dev
//template.yml
parameters:
- name: command
type: string
- name: environment
type: string
- name: username
type: string
- name: password
type: string
- name: databaseName
type: string
- name: databaseIP
type: string
- name: context
type: string
- name: checkoutStep
type: step
default:
checkout: self
jobs:
- deployment: !MY PROBLEM!
pool:
name: exampleName
demands:
- agent.name -equals example
environment: ${{ parameters.environment }}
container: exampleContainer
strategy:
runOnce:
deploy:
steps:
...
我的问题是部署不能有两次相同的名称。无法使用${{parameters.command}}
来区分部署名称,因为它包含禁止字符。仅${{parameters.command}}
在两个调用之间有所不同。
我的问题是除了传递另一个参数(例如 jobName: )之外,是否可以区分部署的名称。我尝试了各种条件和预定义变量,但没有成功。
此外,我应该添加 DependsOn 以便在第一个模板之后肯定会调用第二个模板。
解决方案
这是不可能的,因为getCommitDate
第二阶段的命令参数包含运行时表达式,而作业名称需要编译时表达式。因此,如果您command
在编译时使用作业名称,您就有了rollbackToDate $(getCommitDate)
。
推荐阅读
- java - 两组数据集 Spark Java API
- database - Oracle 11.2 将记录拆分为多条记录
- asp.net-mvc - 如何自动化网站以获得特定结果
- java - 将无缝播放信息添加到 AAC
- visual-studio - 添加 /GH 和 /Gh 标志会给您的应用程序增加多少开销
- r - Stargazer 中标准化/非标准化系数的不同意义
- javascript - MongoDB 文档中的歧义-Model.find()
- list - angular5从模态列表中添加或编辑项目
- php - 为什么当 $real_usage 参数设置为 true 时 memory_get_usage() 返回的值较低?
- java - 列表中的最后一项覆盖回收站视图项中的其他项