动态设置自动管道的参数值

2023-12-15

如果我创建一个参数,我可以在手动运行管道时设置其值。但是当管道自动运行时,它使用默认值。当管道自动运行时(例如响应推送到存储库)是否有任何方法可以向其传递参数值?

这是我正在使用的 yaml 文件。目标是能够控制在管道中运行哪些测试。

parameters:
  - name: testFiles
    type: string
    default: cypress/integration/first.spec.js

trigger:
  - azure-test

pool:
  vmImage: ubuntu-latest

steps:
  - task: NodeTool@0
    inputs:
      versionSpec: "10.x"
    displayName: "Install Node.js"

  - script: npm install
    displayName: "npm install"

  - script: npx cypress run --record --key [record key removed] --spec ${{ parameters.testFiles }}
    displayName: "run cypress"

当管道自动运行时(例如响应推送到存储库)是否有任何方法可以向其传递参数值?

运行自动管道时,只会使用默认参数值。

所以我们可以通过改变参数的默认值来实现这个需求。

根据我的测试,我找到了一个方便的方法:你可以使用如果表达式检查触发方式(手动或 CI)。然后就可以设置参数的值了。

Note:我们在定义参数时不能使用if表达式,所以需要使用变量来传递值。

你可以参考这张票.

这是我的例子:

trigger:
- master


variables:
   ${{ if eq( variables['Build.Reason'], 'IndividualCI' ) }}: 
    buildVersion: $(BUILD.SOURCEVERSIONMESSAGE)
   ${{ if ne( variables['Build.Reason'], 'IndividualCI' ) }}: 
    buildVersion: cypress/integration/first.spec.js

parameters:
  - name: testFiles
    type: string  
    default: $(buildVersion)


pool:
  vmImage: ubuntu-latest

steps:
- script: echo ${{ parameters.testFiles }}
  displayName: 'Run a one-line script'

变量$(Build.Reason)用于确认触发方式。

变量$(BUILD.SOURCEVERSIONMESSAGE)包含提交的消息。

步骤如下:

  1. 当您将更改推送到存储库中时,您需要添加评论。注释是测试文件路径。

enter image description here

  1. CI 触发的管道将获取此注释并将其设置为参数默认值。

enter image description here

在这种情况下,类似于手动运行管道来设置参数值。

当您手动运行管道时,它将使用定义的默认值。您还可以在手动运行管道时修改该值。

enter image description here

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

动态设置自动管道的参数值 的相关文章

随机推荐

  • C 拆分 CMD 参数

    我正在尝试做某事 但我可以 我有一个 C 程序 我想在其中解析所有参数 让我们更具体一点 EDIT 我在缓冲区中读取命令 而不是在程序以 argv 等启动时读取命令 我使用 fgets 从 STDIN 读取命令 假设我读了这样的命令行 ls
  • 根据列表索引组合字典列表

    我觉得这个问题以前肯定有人问过 但在 Stack Overflow 上找不到 有没有一种方法可以根据列表索引优雅地组合多个字典列表 见下文 list 1 hello world foo test list 2 a b c d result
  • 将 JSON IPython 笔记本 (.ipynb) 转换为 .py 文件

    如何转换 IPython 笔记本文件 json 与 ipynb扩展 到常规 py module 从笔记本菜单中 您可以将文件直接保存为 python 脚本 转到菜单的 文件 选项 然后选择 下载为 您将看到 Python py 选项 另一种
  • javascript,当右div隐藏时左div必须是100%宽度

    FIXED 通过将 mplungjan 的代码编辑为以下内容来修复它 function foo on click function if this is checked checked a show fast function checke
  • 错误 1452 MySQL

    向空表中插入数据 但出现错误 1452 我不知道为什么 MySQL 在错误中提到了 NameInfo 表 CREATE TABLE NameInfo Language VARCHAR 7 NOT NULL Status VARCHAR 13
  • 如何指定涉及中间局部变量引用的闭包的生命周期界限?

    我正在尝试用 Rust 编写一个如下所示的函数 fn double and square lt a T gt x a T gt whatever the output type of t t is let t x x t t 我希望它适用于
  • Spring Boot 不允许 URL 中通过百分比和反斜杠

    我们收到一个 get 请求 该请求在 url 中发送字符串字符 因此我们使用路径变量来接收它们 显然 调用服务无法更改其调用后端的方法 因此我们需要能够接受包含以下未编码字符的 url 当发送百分号 时 将返回 http 400 如果 后面
  • 为什么我们将 Loggers 声明为 static Final?

    在 Java 中 为什么声明记录器是最佳实践static final private static final Logger S LOGGER private 这样其他班级就不能hijack你的记录器 static 因此每个类只有一个记录器
  • 如何用 C# 编写解析器? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何用 C 编写解析器 递归下降 现在我只想要一个简单的解析器来解析算术表达式 并读取变量 虽然后来我打算编写一个 xml 和 html 解析器 用于学习目的 我这样做是因为解析
  • 所有 BlackBerry 设备的 UI 兼容性

    我为 BlackBerry 编写了一个简单的应用程序 并使用 9630 模拟器进行了测试 如何获得与所有模拟器兼容的 UI 设计 测试 测试 测试 如果您需要您的应用程序在所有模拟器上运行 那么获取所有模拟器并尝试一下 轮缘做得很好为您提供
  • 在python中读取PFM格式

    我想读书PFM使用 Python 格式化图像 我尝试过imageio read但它抛出一个错误 请问我可以有什么建议吗 img imageio imread image pfm 以下 Python 3 实现将解码 pfm 文件 下载示例纪念
  • 无法将 create_async() 与 WRL WinRT 组件一起使用

    我想使用 WRL 编写一个支持异步的 WinRT 组件 但我发现create async 即使我包括了 也是未定义的ppltask h and using namespace concurrency如何使用WRL模式创建后台任务 我的功能是
  • 获取 Spark ML 多层感知器分类器的输出层神经元值

    我正在使用 Spark ML 多层感知器分类器进行二元分类 mlp MultilayerPerceptronClassifier labelCol evt featuresCol features layers inputneurons i
  • map(&:name) 在此 Ruby 代码中做了什么?

    为了更好地理解 Ruby 我在网上冲浪时遇到了以下代码 require rubygems require activeresource ActiveResource Base logger Logger new File dirname F
  • 如何更改 Android M 中拒绝/授予的权限?

    我怎样才能让用户有机会更改应用程序中的权限 他已经设置了授予 拒绝 假设用户拒绝了权限 稍后他希望我们授予此许可 是否可以 我怎样才能做到这一点 如果用户拒绝了该权限 您可以检查该权限 如果他也检查了不再显示 在这种情况下 您可以打开自己的
  • 基于范围的 for 循环中 range-init 的生命周期是多少?

    在最新的 C 标准中 它意味着 for foo bar baz 相当于 auto r bar for auto it r begin end r end it end it foo it baz 当上面的 bar 是一个返回集合的函数调用时
  • 带 Break 的无法到达语句

    所以我之前有一个问题 但意识到我发布了错误的违规代码 我已在下面标记了令人反感的言论 我想要做的是使用该 switch 语句设置每个运算符的优先级 也许有人可以指出我正确的方向 请注意 我正在运行 JAVA 7 因此 String Swit
  • boost::function 和 boost::bind 如何工作

    我不喜欢让魔术盒散布在我的代码中 这两个类到底是如何工作的 以允许基本上任何函数映射到函数对象 即使函数具有与我传递给的参数完全不同的参数集boost bind 它甚至适用于不同的调用约定 即成员方法是 thiscall在VC下 但 正常
  • SQL Access INSERT INTO 失败

    我正在尝试制作一个使用 OLEDB 连接到 Microsoft Access 数据库的 Visual Basic 应用程序 在我的数据库中 我有一个具有以下布局的用户表 ID Autonumber Username Text Passwor
  • 动态设置自动管道的参数值

    如果我创建一个参数 我可以在手动运行管道时设置其值 但是当管道自动运行时 它使用默认值 当管道自动运行时 例如响应推送到存储库 是否有任何方法可以向其传递参数值 这是我正在使用的 yaml 文件 目标是能够控制在管道中运行哪些测试 para