推迟生产版本以在 azure devops yaml 管道中的自定义时间运行

Rad*_*ika 2 azure-devops azure-pipelines-yaml

我们拥有经典的管道设置和预部署批准,可以将生产发布推迟到决定发布的时间。像下面这样

这是 YAML 管道中的设置需求

最近公司采用了 azure devops yaml,所有管道现在都迁移到 Azure devops YAML。我被要求在 YAML 管道中设置类似的结构,人们可以在其中批准发布并将其推迟到特定时间。

如何在 YAML 管道中实现类似的设置?

pro*_*cro 5

不幸的是,没有开箱即用的选项。有一些解决方法,也许有适合您的方法:

1

这个社区请求中,描述了几种替代方案,例如:使用带有 defer 的经典管道、使用 powershell 启动 YAML 管道。

2

这里描述了另一种替代方案,即在管道中使用睡眠,可以通过参数进行配置。

trigger:
- main

pool:
  vmImage: ubuntu-latest

parameters:
  - name: delay
    displayName: Defer deployment (in seconds)
    type: string
    default: 0

steps:
# Delay further execution of a workflow by a fixed time.
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: 'Start-Sleep -s ${{ parameters.delay }}' 
- script: 'echo after ${{ parameters.delay }} minutes'

Run Code Online (Sandbox Code Playgroud)

3

对于无代理作业,您可以使用“延迟”任务。使用此任务时,可以使用输入参数将延迟设置为变量值。

结论

所有的选择听起来都不错hacky