Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops 可能通过github pr注释触发构建,并带有一些参数_Azure Devops - Fatal编程技术网

Azure devops 可能通过github pr注释触发构建,并带有一些参数

Azure devops 可能通过github pr注释触发构建,并带有一些参数,azure-devops,Azure Devops,我希望能够通过Github注释触发构建。我已经开始工作了,但是有点限制。在我的例子中,我有3个或4个命名的部署目标,并希望触发部署到其中一个部署的管道。没有任何上下文指示我喜欢的环境是什么,所以我只想成为一个变量 比如: /AzurePipelines运行部署环境=测试foo=bar 这可能吗?如果没有,是否有人有一个聪明的变通方法 目前,我已经将管道的相关部分移动到一个模板中,并且每个env都有一个利用该模板的管道。这会产生令人不快的噪音。您可以在管道中使用$Build.SourceVersi

我希望能够通过Github注释触发构建。我已经开始工作了,但是有点限制。在我的例子中,我有3个或4个命名的部署目标,并希望触发部署到其中一个部署的管道。没有任何上下文指示我喜欢的环境是什么,所以我只想成为一个变量

比如: /AzurePipelines运行部署环境=测试foo=bar

这可能吗?如果没有,是否有人有一个聪明的变通方法

目前,我已经将管道的相关部分移动到一个模板中,并且每个env都有一个利用该模板的管道。这会产生令人不快的噪音。

您可以在管道中使用$Build.SourceVersionMessage

此变量是代理作用域,可以在脚本中用作环境变量,也可以在生成任务中用作参数

因此,您可以在管道顶部添加powershell任务,以获取您的PR提交消息。然后使用正则表达式或json从提交消息中提取属性和值。然后你可以为你的管道

下面是一个简单的示例,当我创建pr时,我将提交消息设置为json字符串{env:test foo:bar}。我在脚本中提取env和foo属性及其值,并将它们设置为管道变量

variables:
  env: ""
  foo: ""
steps:
- task: PowerShell@2
  displayName: 'Get Variables'
  inputs:
    targetType: inline
    script: |
      $data= '$(Build.SourceVersionMessage)'
      write-host $data
      $variables= $data | ConvertFrom-Json
      $variables.PSObject.Properties | foreach {Write-host "##vso[task.setvariable variable=$_.Name]$_.Value"}
然后,您可以根据提交消息在以下任务中使用变量

希望以上帮助