如何从外部向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构建管道传递参数来控制任务执行? 的相关文章

  • VSO:具有分层区域结构的单一项目?

    历史上我们一直有各自的VSO正在开发的每个逻辑项目的项目 这一点尤其重要 因为我们需要为每个项目都有单独的积压工作 每个项目都有自己的产品负责人 我们有一个由大约 10 名开发人员组成的团队 他们在这些项目之间工作超过 2 周的冲刺 在使用
  • 如何在 Azure DevOps 中的运行未完成时更改其状态

    当我通过测试计划 gt 测试套件 gt 选择要执行的测试 gt 执行 gt 运行 Web 应用程序启动手动测试执行时 测试和反馈 浏览器扩展将启动 当由于任何原因我没有完成时测试执行并关闭 测试和反馈 窗口 系统将创建一个新的测试运行 可以
  • 使用 TFS 在线服务构建时,有什么方法可以签署 Clickonce 应用程序吗?

    我已在我的单击一次应用程序中启用了签名 但构建服务器 TFS在线服务 没有证书 有什么方法可以将证书包含在存储库中并让构建服务器对其进行签名 或者我是否必须禁用签名并在之后手动执行此操作 我没有从商店中挑选证书 而是签入文件并从文件中挑选
  • 如何解决 VSTS 中拉取请求中的合并冲突?

    我已经创建了拉取请求 我进入了这个 批准 按钮不执行任何操作 并且 完成 被禁用 如何解决拉取请求中的冲突 Update 微软刚刚添加了基于浏览器的合并 这可能会让你摆脱小冲突的困境 并提供自 Sprint 150 起改进了不同场景的可视化
  • 在对 VSTS API 的 Ajax 调用中使用 OAuth Bearer Token 而不是 PAT

    我已成功让我的 ASP NET MVC5 应用程序在服务器端用 C 读取和写入 VSTS 工作项 然而 为了获得最佳的用户体验 我真的想使用 Ajax 进行一些更新 我已经能够使用在我自己的帐户下创建的个人访问令牌 PAT 完美地完成此操作
  • Visual Studio Online 中的时间跟踪

    有没有办法测量 Visual Studio Online 中用例或任务所花费的时间 我希望将所有内容保存在一个地方 Visual Studio Online 就是这种情况 并从那里能够生成报告 例如每个用户的每月时间跟踪报告和反映实际工作时
  • Azure DevOps 的缩写是什么?

    我认为它可能是 ADO 但这会使其与遗留的 Microsoft 数据访问层 ActiveX 数据对象 或它所代表的任何内容相混淆 或者 DevOps 但这会使其与一般的 DevOps 相混淆 而且它是无论如何 也没有那么短 是否有官方缩写或
  • 任何人都可以帮助我如何通过 vsts 停止和启动 azure webjobs?

    我在 VSTS 中找到了一个插件 azure app service webjob start 但我无法启动 停止 webjob 请帮助我 在 VSTS 中运行任务时出现以下错误 Error 2017 09 25T12 26 37 3203
  • Azure DevOps / VSTS 失败的计划构建的电子邮件通知

    计划的构建已设置为每天在特定时间运行 例如下午 13 点 通过 Azure DevOps VSTS 但是 失败的计划构建不会发送电子邮件通知 当手动启动构建或由代码更改触发构建时 就会发生这种情况 如何在计划构建失败时启用电子邮件通知 创建
  • VSTS:在构建过期的情况下自动变基/合并和重新排队构建验证门

    我们最近对 PR 上的构建验证门进行了更改 这样 如果另一个提交在当前 PR 完成之前进入主分支 则构建会 立即 过期 看here https stackoverflow com questions 49418800 vsts invali
  • 在 AzureDevops 中发布测试结果挂起

    我们正在使用发布测试结果任务PublishTestResults 2在 Azure Devops 的管道中发布 junit 类型结果 它以前运行良好 但现在挂起 10 分钟 我认为这是默认的作业超时 然后失败 即使结果已发布 如果我在作业开
  • 使用 powershell 进行 Azure DevOps git checkout

    我正在尝试使用 Azure Pipelines yaml 从 powershell 脚本中使用 git 进行结帐 当我在构建过程中运行以下命令时 我的构建挂起 task PowerShell 2 displayName Update rea
  • 如何在 VSTS 中的托管代理上运行或安装工具

    我想在 VSTS 上以管理员身份运行 cmd 实际上 我正在尝试在 VSTS 托管代理上安装带有 Chocolatey 工具管理器的 git tfs 因此我在 VSTS 命令行任务上运行以下命令 SystemRoot System32 Wi
  • Azure DevOps - 使用 GUI 而不是 YAML 来编辑构建管道

    不久前 Azure DevOps 添加了对 YAML 构建管道的支持 这对于高级用户来说非常好 我明白 专业人士只使用命令行和纯文本工具 GUI 适合弱用户 原因有很多 有没有办法返回 GUI 经典编辑器 来编辑现有管道 我已禁用该功能 如
  • 如何使用 REST API 列出 TFS GIT 存储库中的所有文件

    全部 我正在尝试使用 REST API 获取 TFS GIT 中特定存储库中的所有文件的列表 我找到了下面的一个 但它只显示 scopePath buld xml 后面提到的特定文件名的内容 它只显示文件build xml的内容 但我试图仅
  • 默认“合并后完成链接的工作项”为未选中

    VSTS 中出现了 PR 完成的新功能 其中默认标记为完成的 PR 也会将链接的工作项标记为完成 除非未选中 如果可能错过此复选框 是否可以将其默认为未选中 自 2017 年 8 月 28 日起 您可以更改此复选框的默认行为 虽然它默认为
  • 是否可以为 TFS2015.2 构建定义命令行步骤配置“消息突出显示模式”?

    可以配置Error message highlight pattern and Warning message highlight patternTFS2015 2的Command Line step 例如 我可能有以下运行命令行实用程序的
  • 如何在 Azure 管道上运行 Karate API 测试

    空手道和 Azure 新手 刚刚使用空手道创建了一些 API 测试 而且很简单 想要进一步添加 Azure 管道 找到了一些仅指向添加 Microsoft 的 pom xml 和 maven 的链接 还发现了 Jekins 集成 但没有适用
  • 如何正确设置 Azure DevOps 和 GitHub 之间的双向同步

    我想通过执行以下操作在 Azure DevOps 和 GitHub 之间创建双向同步 使用 CI 触发器创建 Azure DevOps 管道 将更改从 Azure DevOps 存储库推送到 GitHub 中的分支 创建第二个管道 用于侦听
  • 获取 405 方法不允许将 NuGet 发布到 VSTS/ADO

    我刚刚设置了一个新的 ADO 以前称为 VSTS VSO 包管理源 并且尝试从桌面向其发布本地 NuGet 包 我按照提要中的说明进行操作 但当我尝试发布时收到 405 方法不允许 我按照 NuGet 3 3 VSTS 凭据提供程序 的说明

随机推荐

  • 自 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 中有一个项目 它有一个构建管道 配置了一系列任务 涉及构建解决方案 生成可部署包等 通常 这会执行得很好 没