繁体   English   中英

Azure DevOps Pipeline:一个阶段两次使用相同的模板

[英]Azure DevOps Pipeline: same template twice in one stage

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

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

要解决此问题,模板中的作业标识符应为空:

- job: # Empty identifier

此处提供更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM