gpt4 book ai didi

templates - Azure DevOps 管道 : same template twice in one stage

转载 作者:行者123 更新时间:2023-12-05 04:56:37 24 4
gpt4 key购买 nike

在一个阶段的主管道中,我调用同一个(部署)模板两次,但数据略有不同:

//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)

关于templates - Azure DevOps 管道 : same template twice in one stage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64823748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com