问题标签 [azure-pipelines-yaml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4222 浏览

azure - Azure - 创建布尔变量并在多个任务中使用它

我想为一个阶段定义一个布尔变量,并希望在阶段中的一个任务中的另一个脚本中设置它(真/假),并希望在其他后续任务中使用该变量作为条件,我该怎么做?

我的天蓝色管道是基于 YAML 的。

0 投票
3 回答
9025 浏览

azure-devops - 如何允许运行时参数使用空字符串?

我刚刚开始使用 Azure Pipelines 中的运行时参数,有些东西我还不太清楚。考虑到这个 Azure Pipelines YAML:

为什么 releaseName 是必需参数?我希望通过指定default: ''将其留空是可选的。该文档没有提到是否可以将参数设为可选。

图片

跟进 Kryzstof 的回答,我做了进一步的实验,似乎只包含空格的字符串被解释为空:

似乎这个单个空格被解释为空(我也尝试了多个空格)。

这产生:

myString 值为 '' 它的长度为 0 是 null 还是空?True 它是空值还是空格?真的

0 投票
1 回答
4110 浏览

azure-devops - Azure Pipeline - 使用模板任务中的变量集作为另一个模板任务中的参数

我创建了两个模板——一个用于获取和设置一些配置,例如区域名称,另一个用于部署。我正在尝试将配置模板任务中设置的变量用作部署模板的参数输入。有没有这样做的实际方法?

我的配置模板:

我的部署模板如下所示:

我的舞台看起来像这样(去掉了不必要的位):

我尝试了以下方法appFullName: <name>

  • $(EastName)
  • ${{ EastName }}
  • $[ EastName ]
  • $EastName

但是,可悲的是,这些似乎都不起作用,因为它们都被作为文字拉入。有没有办法做到这一点?我已经看到了使用方法,dependsOn但我不希望两个模板之间存在隐藏的依赖关系(如果可能的话)

0 投票
1 回答
437 浏览

azure - 如何区分 azure DevOps 构建管道中的分支触发器和计划触发器

我想在构建管道中为分支触发器和计划触发器运行不同的作业。

branch trigger => run job 1

scheduled trigger => run job 2

有什么方法可以区分触发器吗?这样我就可以根据这种差异化条件来运行我的工作。

我的思考过程

我正在考虑在预定触发期间设置变量,因此我可以在作业条件评估中使用该变量。但我无法设置变量。

0 投票
1 回答
4288 浏览

git - 触发 CI 特定分支并排除 Azure-Pipelines.YML 中的其他分支问题

我正在尝试创建一个 azure 管道,它触发特定分支中的更改但排除其他分支。示例场景是,我有多个分支,例如dev, test,beta分支。所以我有这个示例配置azure-pipelines.yml

dev它工作正常,它在我的 azure devops 中触发 CI 构建。但问题是,在我切换到我机器上的其他分支之后,假设test我更新了azure-pipelines.yml这样的内容:

并将其推送到原点,CI for testand devare trigger 并且它们的分支标记在test分支中。这是错误的,因为dev不应包含或触发 CI。

我还确保每个 CI 构建都使用azure-pipelines.yml指定给特定分支的那个。这就是为什么我不知道为什么它不能正常工作。

0 投票
2 回答
577 浏览

azure-devops - 单一存储库中 PR 的 Azure DevOps 管道结构

我有一个包含多个子项目(如果重要的话是 Node/TypeScript)的 mono-repo。我正在尝试在 Azure DevOps 中设置我认为相对简单的拉取请求设置,旨在部署 PR 环境进行测试。它由 2 个管道组成,我想在 PR 中一个接一个地触发它们。如果其中任何一个失败,PR 也应该失败。代码托管在 Azure DevOps Git 中。

以下是我试图实现的步骤:

  1. PR 是用标签创建的,solution-a用于从分支合并features/feature-xdev分支
  2. 分支策略solution-a-pipeline基于标签触发solution-a。如果标签不同,则应触发不同的管道。
  3. solution-a-pipeline按顺序触发infrastructure-pipeline并在分支* 的solution-a-build-pipeline上下文中。features/feature-x
  4. 如果solution-a-pipeline成功完成(间接这意味着infrastructure-pipeline并且solution-a-build-pipeline也按顺序成功完成),则认为 bulid 成功。否则失败,无法完成 PR。

*“在上下文中”是指用于每个管道的实际 yaml 文件是来自功能分支的文件。这是因为我希望它测试对管道的任何更改以及管道中的任何步骤。

有没有办法做到这一点?几天来,我一直在尝试使用管道文件、模板、资源和触发器的不同组合,但我似乎无法理解它。

0 投票
3 回答
1737 浏览

git - 仅在更改某些文件时运行 Azure Pipelines 作业

我有一个包含 Dockerfile 和其他代码的存储库。无论发生了什么变化,我们都希望运行某些步骤,但只想在发生变化docker build时运行作业**/Dockerfile

我已经查看了条件文档表达式文档,但我不清楚如何(如果可能的话)如何组合这些或以其他方式达到预期的结果。

我意识到它在bash(例如git rev-list...git diff --name-only <previous_commit>..HEAD | grep <pattern>)中是可能的,但这有点麻烦,它仍然在 Azure Pipelines 中显示该作业已运行,它只是短路了。理想情况下,它会(适当地)显示该作业被一起跳过。

我还意识到 Docker 部分和代码部分可以位于具有单独构建触发器的单独存储库中,但如果可能的话,希望将它们放在同一个存储库中。

0 投票
1 回答
453 浏览

azure-devops - Azure DevOps Pipeline 在部署中定义变量并在后续作业中重用

我正在使用 Azure DevOps 管道来部署我的代码,现在我需要将变量值从部署作业传递到依赖它的后续作业。我已经阅读了这个例子,但它似乎根本不起作用。

我要做的是运行一个预配 Key Vault 的 Azure ARM 部署。密钥保管库的名称是从 ARM 部署作业中输出的,然后我尝试将该名称传递给另一个需要添加特定机密的作业。访问控制已处理,但我仍然需要传递名称。

我将问题归结为将变量从 a 传递deployment到 a的基础知识job。这是我完整的测试管道(几乎完全从这里复制):

一旦我运行这个,回显的值在作业中是空白的B,但在部署中定义A。为什么是这样?有没有办法把所有东西都放进去,dependencies.A.outputs这样我就可以看到我必须处理什么?

如何将变量从runOnce部署作业传递到常规作业?

0 投票
1 回答
319 浏览

azure-devops - 我可以在 Azure DevOps 管道库中的变量组中强制使用相同的变量吗?

我在管道库下定义了几个变量组。我为每个发布环境使用不同的组(例如,DEV、QA、PROD)。每个环境的部署都需要所有相同的变量,但具有不同的值。

这是一长串变量,当我们添加和删除变量时,我无法判断我的组是否会随着时间的推移而彼此不同步。

我真的希望我有类似 C# 接口的东西来使所有组匹配。我希望新的 YAML 模板能以某种方式提供帮助,但我找不到任何可以解决这个问题的方法。

有人对此有很好的解决方案吗?这似乎是变量组的一种非常常见的用法。

0 投票
1 回答
488 浏览

yaml - 使用模板天蓝色管道时不会发生变量替换

因此,我尝试将参数提交到我的模板部署中,但不确定其他参数是否按预期工作只是新的参数不起作用,但是如果我将其设置为没有参数的布尔值,则它可以工作。

似乎没有发生一些变量替换,我只是不知道为什么它一定很简单,但我就是找不到

usek8s不起作用,来自变量选项卡的图像

在此处输入图像描述

来自 azure-pipelines.yml 的片段,当它不起作用时

azure-pipelines.yml 的片段,当它工作时

来自父模板的片段

我得到的错误

在此处输入图像描述

如果我删除布尔数据类型并使用名称运行它,我只会在条件行中得到相同类型的错误 在此处输入图像描述