如何从外部向azure Devops构建管道传递参数来控制任务执行?

2024-04-22

我的查询是 如何将参数传递给外部的azure Dev ops构建管道来控制任务执行? 详细解释如下:

我在 azure Dev ops 中有一个项目,它有一个构建管道,配置了一系列任务,涉及构建解决方案、生成可部署包等。通常,这会执行得很好,没有任何问题。

我想要实现的是在这个项目构建定义中声明一个管道变量,当我说它是完全不同的或像 ms flow 这样的外部应用程序时,我可以从外部访问它,以便我可以将值传递给新创建的管道变量如上所述,并使用存储在这个新变量中的值,我应该能够跳过构建管道中的几个步骤,并且应该能够仅执行几个步骤。

让我用一个例子来解释一下:

  1. 考虑 azure Dev ops 中名为 A 的项目,该项目有一个配置了 5 个不同任务的构建管道
  2. 在同一个构建管道中,假设创建了一个名为 flag 的新管道变量
  3. 考虑像 ms flow 这样的外部应用程序,它会在步骤 1 中触发项目 A 构建管道
  4. 我应该能够使用第三步中的流程将值传递给步骤 2 中创建的标志变量,如 true 或 false。
  5. 使用从 ms flow 传递到构建管道的标志值,应该执行构建管道中的任务,即,如果通过外部应用程序传递到构建管道的值是 true,那么它应该只执行构建管道中的 3、4 个任务并跳过其他 false 应该执行 azure Dev ops 中构建管道中的所有步骤。

问题是如何实现或使这种行为发生?

请帮我解决这个问题吗?

如果无法将值传递给变量,您能否让我知道如何从外部应用程序(如 ms flow)实现 azure Devops 构建管道触发器的跳过行为?


由于 REST API 可以在对构建进行排队时传递参数,并且您可以在构建管道中指定自定义条件,因此有一个解决方法。 根据 REST API 文档,您可以将其转换为 Powershell 脚本,如下所示。

Param(
       [string]$collectionurl = "https://dev.azure.com/{orgname}",
       [string]$project = "{projectname}",
       [string]$user = "{useraccount}",
       [string]$token = "{yourPAT}"
)

$base64AuthInfo= [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user, $token)))

$defurl = "$collectionurl/$project/_apis/build/builds?api-version=5.0"
$json = '{"parameters":  "{\"AnotherParameter\":  \"true\"}","definition":  {"id":  "{definitionId}"}}'
$updatedef = Invoke-RestMethod -Uri $defurl -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

您可以创建三个构建管道。第一个管道是您的主管道,有 5 个不同的任务。您可以设置自定义条件,如下所示。这意味着,只有当 AnotherParameter 的值为 true 时,任务才会运行。

第二管道和第三管道是触发管道。在第二个管道中,您可以使用 powershell 脚本将 AnotherParameter 设置为 false,并在第三个管道中将该值设置为 true。

然后设置第二个管道由外部应用程序触发,第三个管道由您的存储库或其他人触发。

当外部应用程序触发第二个管道时,另一个参数的值为 false,并且第一个管道中的某些任务将不会运行。

当您的提交触发第三个管道时,另一个参数的值将为 true,并且第一个管道中的所有任务将按预期运行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从外部向azure Devops构建管道传递参数来控制任务执行? 的相关文章

随机推荐

  • 自 Android studio 3.5 起,辅助服务在每次运行时都会自动关闭

    由于我将 Android Studio 更新到 3 5 当我启动 Run 来构建和部署我的应用程序时 我的自定义辅助功能服务会自动关闭 不是崩溃 只是在设置中关闭 你能帮我吗 发生的情况是 Studio 在重新安装新版本之前强制停止该服务
  • 如何使用ng-style设置div的背景图片

    基本上我有一个链接 当单击它时 我会显示一个模式 现在我可以在模态上显示其他属性 例如标题 除了背景图像之外 呃呃 这是模态 div class modalContainer div div style padding top 10px s
  • iTunes Connect 提交代码签名权利错误 Xcode 8

    我在使用 Xcode 8 GM 提交最新的应用程序更新时遇到问题 我在此更新中更新了我的 iPhone 和 watchOS 应用程序 当尝试提交时 我收到以下错误 iTunes Store 操作失败 无效的代码签名权利 你的 应用程序包的签
  • 检测 Twitter 的 iOS 版本?

    显然 我对 Twitter oAuth 令牌请求 的使用在 iOS 5 中不起作用 我如何为 iOS 5 以下的任何内容保留此代码并使用适用于 iOS 5 的新 Twitter 框架 可以检测iOS版本吗 Thanks 您 几乎 永远不想查
  • 将 H.264 I 帧放入 AVSampleBufferDisplayLayer 但不显示视频图像

    在详细回顾了 WWDC2014 Session513 后 我尝试在 IOS8 0 上编写我的应用程序来解码和显示一个实时 H 264 流 首先 我成功构建了H264参数集 当我得到一个带有 4 位起始代码的帧时 就像 0x00 0x00 0
  • 日期比较无法在 Angular js 中工作

    谁能告诉我为什么我的约会对象没有开始工作 基本上 当我尝试比较日期时 它在 angularJs 中不起作用 var dateObj1 filter date Date now dd MMM yyyy output is 04 May 201
  • 从文本字段上的日期选择器设置当前日期

    我正在文本字段上设置日期选择器 为此 这就是我所写的 在viewDidLoad let datePicker UIDatePicker datePicker datePickerMode UIDatePickerMode date date
  • 有没有办法改变模态视图控制器外观的动画样式?

    我正在尝试为两个视图控制器视图的出现和消失设置动画 我使用了以下两行代码 self modalTransitionStyle UIModalTransitionStyleCoverVertical self presentModalView
  • Jest 不会转换模块 - SyntaxError: 无法在模块外部使用 import 语句

    我无法摆脱这个SyntaxError Cannot use import statement outside a module无论我尝试什么 都会出错 而且非常令人沮丧 这里有人解决了这个问题吗 我已经阅读了一百万个 stackoverfl
  • Paypal SandBox IPN 历史

    我使用贝宝付款 为了验证我使用 我可以在 Paypal 沙盒中查看我的 INP 历史记录吗 At the 文档 https cms paypal com cms content US en US images developer IPNHi
  • 如何在编辑器中将动画曲线更改为线性?

    我向轮子添加了旋转动画 但轮子旋转不顺畅 我发现原因是因为旋转动画的曲线不是线性的 然而 在尝试了编辑器中的几乎所有按钮和选项后 我找不到使动画曲线成为线性的方法 有谁知道如何在统一编辑器中获取带有线性曲线的动画 我自己找到了解决方案 而且
  • MySQL:从另一台服务器选择

    恐怕我已经知道问题的答案 但我还是会问 当有两台 MySQL 数据库服务器时 我可以访问另一台服务器上存储的数据吗 换句话说 我能以某种方式这样做吗 INSERT INTO table x y z SELECT x y x y FROM o
  • Angular - mat-grid-list 不显示 传递的子项

    我正在使用角度材料设计组件 并想要创建一个自定义网格列表组件 该组件将根据其大小调整网格列表列的数量 组件模板如下所示
  • 让请求在curl中工作,但在Python中不起作用

    我正在尝试使用curl 制作一个 put 方法 一切正常 并且我得到了JSON curl X PUT d foo more foo http ip 6001 whatever api key whatever 但是在使用python时由于某
  • C 联合类型双关数组

    鉴于以下代码 我有一些与类型双关相关的问题 我看不出这没有违反严格的别名规则 但我无法指出具体的违规行为 我最好的猜测是 将联合成员传递到函数中违反了严格的别名 以下代码已开启编译器资源管理器 https godbolt org z bnY
  • 如何删除 ASP.Net MVC 中的 Home?

    我知道这个网站是使用 ASP Net MVC 编写的 但我在 url 中没有看到 Home 这向我证明这是可以做到的 我需要什么特殊路线 只需将 Home 更改为空字符串即可 routes MapRoute Home new action
  • Android 中可能存在哪些安全问题[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 为了了解 Android 设备上应如何保护强大的数据 我想了解哪些攻击是可能的 我开始写下我的知识 希望我能得到纠正 哪里错了或者哪里
  • “Uint8Array”类型的参数不可分配给“number[]”类型的参数

    基于crypto subtle exportKey spki cryptoKey https developer mozilla org en US docs Web API SubtleCrypto exportKey我想转换返回的Arr
  • 什么环境变量控制dyld?

    有许多环境变量控制 dyld 启动 其中一些对于调试性能问题非常有用 并非所有这些都被记录下来 这些在 dyld 手册页中有解释 至少在 macOS 10 13 上 DYLD FRAMEWORK PATH DYLD FALLBACK FRA
  • 如何从外部向azure Devops构建管道传递参数来控制任务执行?

    我的查询是 如何将参数传递给外部的azure Dev ops构建管道来控制任务执行 详细解释如下 我在 azure Dev ops 中有一个项目 它有一个构建管道 配置了一系列任务 涉及构建解决方案 生成可部署包等 通常 这会执行得很好 没