当前位置: 首页 > 知识库问答 >
问题:

使用多阶段的Azure运营模式YAML管道审批

郦何平
2023-03-14

我最近尝试将我们的UI或基于经典的发布管道转换为基于YAML的发布管道。

我们有三个环境,最初一个CD构建将很高兴地部署到我们的开发环境中。

从那时起,我们手动触发一个版本(re:promotion)进行测试,然后在某个时候,如果我们都满意的话,手动升级到生产环境。

我们知道我们不能在发布阶段之间模仿手动推广,因为它目前不受支持,但是根据我所读到的,我们应该能够通过为请求手动推广的每个环境定义安全检查来做同样的事情。

定义安全检查的详细信息如下:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-德沃斯

我已经在测试和生产中添加了相同的安全检查,但是发布仍然会自动发生。

在新的YAML多阶段版本中,是否有这种审批流程的示例

到目前为止,我已经通过“环境”选项卡上的“批准和检查”功能向测试和生产环境添加了一个安全组。

共有1个答案

哈骞仕
2023-03-14

请检查以下YAML样本:

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

stages:

  - stage: build   
    jobs:
      - job: buildjob        
        steps:
          - checkout: none
      - deployment: DeployWeb
        pool:
          vmImage: 'Ubuntu-16.04'
        environment: 'Verify'

  - stage: deploy
    jobs:
      - deployment: DeployWeb
        displayName: deploy Web App
        pool:
          vmImage: 'Ubuntu-16.04'
        environment: 'Verify'
        strategy:
          # default deployment strategy, more coming...
          runOnce:
            deploy:
              steps:
              - script: echo my first deployment

在我的场景中,我有一个环境名称Verify,我为它添加了批准和检查。

要将此批准和检查应用到多阶段管道中,您需要确保YAML中已针对相应的环境。

您需要注意的另一件事是,到目前为止,环境只能是YAML的部署作业中的目标。

换句话说,只有在其中配置-部署:作业的阶段才能使用环境。此外,还将与添加了审批和检查的环境配合使用。

 类似资料:
  • 我正在尝试在Azure DevOps(内部部署)中配置发布管道以支持git流策略。我正在努力实现的目标: promise“发布/*”触发软件的构建并发布到QA的位置 promise“主控”从步骤1获取相同的软件构建(工件),并发布到生产位置 因此,当我做一个git-flow开始发布时,软件可用于测试/质量保证,当我完成发布时,它可供用户使用。 我的构建管道工作正常,它由发布分支触发,并以发布工件任

  • 假设我在Azure上有3个环境:开发、测试和产品。我有相同的管道来构建和部署每个环境的资源和代码,除了两个不同之处: 不同的触发分支 对于这种情况,正确的方法是什么?因为我至少想到了3个,没有一个是完美的: 选项1:我想我可以在Azure DevOps上创建一个管道(由3个分支中的任何一个触发),每个环境有3个阶段,每个阶段根据源分支添加一个要运行的条件,如下所示: 并且在每个阶段引用不同的变量。

  • 在我们的Azure DevOps部署中,我们有一个生成并运行“子”管道的“主”发布管道。子管道从不直接运行。 目前,我们在主管道中使用Powershell脚本启动子管道,但我想知道是否有一个内置任务可以自动执行此操作?我已经看了任务列表,但是没有什么跳出。如果没有也没关系,但我想问问,以防我错过了什么。

  • 我有一个。NET解决方案,其中包含多个项目。我想在Azure运营模式中设置部署管道,但不确定如何做到这一点。我想有1个管道,部署以下项目: 主web应用程序- 我该如何设置?我选择了默认的“Azure应用程序服务部署”模板,但在部署任务中,我无法选择要部署的项目。包引用了,但这是一个zip文件,其中包含我的两个web项目的工件(此处缺少数据库DACPAC)。

  • 尝试让在prem上安装了部署代理的Azure DevOps发布管道以有权访问on-prem数据库的特定用户身份运行控制台应用程序。 这就是工作流程 Azure发布管道调用- 我正在使用管道中的PowerShell任务与此内联脚本: 我知道userid、密码和命令行参数正在正确传递,但是无论控制台应用程序有多简单,当代理运行PowerShell脚本时,它都会崩溃。我尝试在各种服务帐户(系统、管理员等

  • 我有一个docker文件,我可以毫无问题地在本地构建,但在Azure Devops上,变量设置不正确。例如,在本地,我可以运行一个多阶段docker构建,通过授权从Azure工件库中获取工件。授权令牌可以在本地设置,不会有任何问题。在构建管道上,我还不能正确地注入它。 docker文件: 命令: 它注入令牌,以便多阶段构建可以获取工件。 一旦我转移到Azure管道,它将不会注入价值,管道: 第一个