azure - Azure Pipeline 可以在门控/批准阶段使用模板吗?

标签 azure azure-pipelines

我可能以错误的方式处理这个问题,但我们目前有一个 env-deploy-template.yaml其中包含一些参数,例如部署环境名称,然后是运行我们的部署作业的阶段。

所以像这样:

parameters:
  - name: DeployEnv
    type: string
    default: "Test"

stages:
  - stage: some-name
    displayName: "Deploy To ${{parameters.DeployEnv}}"
    variables:
      - group: "some-library.${{parameters.DeployEnv}}"
    jobs:
      - job: do-some-deployment-stuff
        displayName: "Do Some Stuff"
        steps:
          - task: ...

目前,它在主 Azure 管道 yaml 中的用法如下所示:

trigger:
  - some-branch

pool:
  vmImage: ubuntu-latest
  
stages:
  - stage: Build
    displayName: "Build"
    jobs:
      - job: ...
  - template: env-deploy-template.yml
    parameters:
      DeployEnv: "Test"
      Name: "DeployToTest"
      
  - stage: RunAcceptanceTests
    dependsOn:
      - DeployToTest
    displayName: "Run Acceptance Tests"
    variables:
      - group: some-library.Test
    jobs:
      - job: RunAcceptanceTests
        displayName: "Run Acceptance Tests"
        steps:
          - task: ...

此时我们已经自动部署到 Test并且验收测试已经运行并验证,我们希望有一个批准步骤,供测试中的人员签署,然后让下一步运行相同的模板,但部署到 UAT例如。

Azure 文档说审批阶段的配置如下所示:

jobs:
- deployment: DeployToUAT
  displayName: "Deploy To UAT"
  dependsOn: DeployToTest
  environment: "uat" # assuming an environment exists in azure for uat with someone set up as an approver
  strategy:
    runOnce:
      deploy:
        steps: ...

这里的问题是我不想在这里运行一些步骤,我希望它运行 env-deploy-template.yaml具有一些针对 UAT 的不同参数环境配置等

那么有没有办法告诉上面的部署部分它不应该执行步骤而应该直接运行模板?还是我的做法完全错误,而在此之后我应该有另一份工作,这取决于上面的门控部署部分,然后运行模板?

我在网上找不到任何使用模板的示例,我认为这一定是可能的,所以任何帮助都会很棒。

最佳答案

我不确定我是否了解您遇到的困难。您应该能够将 - job: do-some-deployment-stuff 转换为 - deployment: do-some-deployment-stuff,并进行适当的更新以添加部署作业需要的其他参数,例如环境

stages:
  - stage: some-name
    displayName: "Deploy To ${{parameters.DeployEnv}}"
    variables:
      - group: "some-library.${{parameters.DeployEnv}}"
    jobs:
      - deployment: do-some-deployment-stuff
        environment: ${{parameters.DeployEnv}}
        displayName: "Do Some Stuff"
        strategy:
          runOnce:
            deploy:
              steps:
                - task: ...

关于azure - Azure Pipeline 可以在门控/批准阶段使用模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72912228/

相关文章:

azure - 如何从 keystore 检索证书并将其导入到另一个 keystore 而不保存它?

azure - 获取持续部署版本的拉取请求 ID [Azure Pipelines]

Azure DevOps Pipeline Program 不包含适合入口点的静态 'Main' 方法

java - Azure DevOps Pipeline 中的 Maven 构建错误

azure - 此 Azure 搜索索引错误意味着什么? "The property ' x' 在类型 'search.documentFields' 上不存在 ...”

java - 增加 Spring Cloud Stream Azure 服务总线中的并发调用未定义行为

azure - 需要在 terraform 中包含值或使​​用多个循环来存储变量

asp.net-mvc - Controller Action 多次击中-在Azure模拟器中运行的ASP.NET MVC 4应用

azure - 无法进入 kubernetes pod。来自服务器 : error dialing backend: dial tcp: lookup (node hostname) on 168. 63.129.16:53 的错误:没有这样的主机

azure - 完成时使用不同参数触发相同的 Azure DevOps 管道