TFS 构建步骤“在 Octopus 中推广项目”- 如果由特定用户调用,则用于调用构建步骤的变量
TFS build step `Promote Project in Octopus` - variable for invoking build step if invoked by specific user
我正在尝试将 CD 设置为我们的一个应用程序的暂存。我将其设置为执行以下操作:
- 合并到 master 导致 TFS 构建并自动部署到 devlab
- 构建步骤在 tfs 中启动 e2e 测试并针对 devlab 运行测试
- 如果 e2e 测试通过,我想将构建升级到暂存,然后我将重复这些步骤(停止自动部署到生产)
这是我遇到问题的地方:
我在名为 "promote project to octopus" 的 e2e 测试构建上有一个构建步骤 - 此构建也按预定节奏(每晚)运行,所以我只想要最后一步(将项目提升为章鱼)如果启动测试的用户是 octopus-user
(这是我们给机器人起的名字)。
关于此构建步骤的“自定义条件”,我使用上面 link 中提供的指导尝试了几个不同的变量。这里有 2 个示例:
and(succeeded(),equals(variables['Build.RequestedBy],'octopus-user'))
and(succeeded(), equals(variables['Build.RequestedFor'], 'octopus-user'))
如果我删除此变量,则构建成功并按预期将构建提升到暂存阶段。当我插入 variable/s 时,我遇到了不同的失败,如果它是由特定用户启动的,有人指导如何设置变量启动吗? (在这种情况下 octopus-user
)- 问题可能是用户名的格式,也许它需要是电子邮件地址(尽管我试过了,以及用户的 AD 凭据)。
条件写成表达式。代理从最里面的函数开始计算表达式,然后找出路。最终结果是一个布尔值,用于确定任务、作业或阶段是否应该 运行。请参阅 Expressions 主题以获得语法的 完整指南 。
根据执行上下文,可以使用不同的变量。
- 如果您使用 YAML 创建管道,那么 pipeline variables
可用。
- 如果您使用经典编辑器创建构建管道,则 构建
变量可用。
- 如果您使用经典编辑器创建发布管道,那么 发布
变量可用。
根据您的描述,如果您想使用E-mail地址,请使用Build.RequestedForEmail
代替Build.RequestedFor
。
如果您的 name/value 包含空格,请参阅“How are the identity variables set?”。
注意:此值可以包含空格或其他无效的标签字符。在这些情况下,标签格式将失败。
我正在尝试将 CD 设置为我们的一个应用程序的暂存。我将其设置为执行以下操作:
- 合并到 master 导致 TFS 构建并自动部署到 devlab
- 构建步骤在 tfs 中启动 e2e 测试并针对 devlab 运行测试
- 如果 e2e 测试通过,我想将构建升级到暂存,然后我将重复这些步骤(停止自动部署到生产)
这是我遇到问题的地方:
我在名为 "promote project to octopus" 的 e2e 测试构建上有一个构建步骤 - 此构建也按预定节奏(每晚)运行,所以我只想要最后一步(将项目提升为章鱼)如果启动测试的用户是 octopus-user
(这是我们给机器人起的名字)。
关于此构建步骤的“自定义条件”,我使用上面 link 中提供的指导尝试了几个不同的变量。这里有 2 个示例:
and(succeeded(),equals(variables['Build.RequestedBy],'octopus-user'))
and(succeeded(), equals(variables['Build.RequestedFor'], 'octopus-user'))
如果我删除此变量,则构建成功并按预期将构建提升到暂存阶段。当我插入 variable/s 时,我遇到了不同的失败,如果它是由特定用户启动的,有人指导如何设置变量启动吗? (在这种情况下 octopus-user
)- 问题可能是用户名的格式,也许它需要是电子邮件地址(尽管我试过了,以及用户的 AD 凭据)。
条件写成表达式。代理从最里面的函数开始计算表达式,然后找出路。最终结果是一个布尔值,用于确定任务、作业或阶段是否应该 运行。请参阅 Expressions 主题以获得语法的 完整指南 。
根据执行上下文,可以使用不同的变量。
- 如果您使用 YAML 创建管道,那么 pipeline variables 可用。
- 如果您使用经典编辑器创建构建管道,则 构建 变量可用。
- 如果您使用经典编辑器创建发布管道,那么 发布 变量可用。
根据您的描述,如果您想使用E-mail地址,请使用Build.RequestedForEmail
代替Build.RequestedFor
。
如果您的 name/value 包含空格,请参阅“How are the identity variables set?”。
注意:此值可以包含空格或其他无效的标签字符。在这些情况下,标签格式将失败。