代码部署版本的运行时参数

Runtime parameter for code deploy releases

在“管道”部分使用 Azure DevOps 'Releases' 将新代码部署到我的 Web 应用程序时(不要与构建代码的 'Pipelines' 混淆),是否可以设置发布开始部署代码之前的运行时参数?

我有一种情况,当我还计划在 SQL 服务器中恢复我的数据库时,我只想删除我在 CosmosDB 中的集合。目前,我的发布管道中有一个 'Cosmos DB Collection Management' 任务总是删除我的集合,但如上所述,我只想根据特定条件删除。

我知道我可以创建一个相同的发布管道并删除 'CosmosDB delete collection' 任务,但我想使用一个版本而不是多个版本。

你可以使用 a custom variable as a condition under ymal file.

您可以使用以下 yaml:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  ....

  test: 'true'

stages:
  - stage: A
    jobs:
    - job : A1
      steps:
      # your custom task
      - task: xxx 
     
      # your custom task
      - task: xxx

     

    - job: A2
      condition:  eq('$(test)', 'true')
      steps:
        # CosmosDB delete collection task
        - task: xxx
      

您可以更改 test 的值来控制该任务。

所以,我能够弄清楚如何放入自定义条件。对于 CosmosDB 集合管理任务,我所要做的就是以下两件事。

  1. 我需要创建一个 'release' 变量 'CosmosSkip' 以便在 Azure DevOps 中创建版本时,我可以将变量设置为 false 或 true 并跳过该步骤与否。

  2. 在'Control Options'下,转到'Run this task',将其设置为自定义条件,然后将表达式放在那里(原为:eq('${{ variables.CosmosSkip }}', 'false') ;但是,我认为表达式可能有误,需要进行一些调整)。所以我使用的原始布尔表达式是不正确的。对我有用的是 --> eq(variables.CosmosSkip, 'False')。不需要额外的大括号和美元符号。

帮助我意识到这一点的文档来自以下 MS 文档:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops