问题标签 [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.
azure - Azure - 创建布尔变量并在多个任务中使用它
我想为一个阶段定义一个布尔变量,并希望在阶段中的一个任务中的另一个脚本中设置它(真/假),并希望在其他后续任务中使用该变量作为条件,我该怎么做?
我的天蓝色管道是基于 YAML 的。
azure-devops - Azure Pipeline - 使用模板任务中的变量集作为另一个模板任务中的参数
我创建了两个模板——一个用于获取和设置一些配置,例如区域名称,另一个用于部署。我正在尝试将配置模板任务中设置的变量用作部署模板的参数输入。有没有这样做的实际方法?
我的配置模板:
我的部署模板如下所示:
我的舞台看起来像这样(去掉了不必要的位):
我尝试了以下方法appFullName: <name>
:
$(EastName)
${{ EastName }}
$[ EastName ]
$EastName
但是,可悲的是,这些似乎都不起作用,因为它们都被作为文字拉入。有没有办法做到这一点?我已经看到了使用方法,dependsOn
但我不希望两个模板之间存在隐藏的依赖关系(如果可能的话)
azure - 如何区分 azure DevOps 构建管道中的分支触发器和计划触发器
我想在构建管道中为分支触发器和计划触发器运行不同的作业。
branch trigger => run job 1
scheduled trigger => run job 2
有什么方法可以区分触发器吗?这样我就可以根据这种差异化条件来运行我的工作。
我的思考过程
我正在考虑在预定触发期间设置变量,因此我可以在作业条件评估中使用该变量。但我无法设置变量。
git - 触发 CI 特定分支并排除 Azure-Pipelines.YML 中的其他分支问题
我正在尝试创建一个 azure 管道,它触发特定分支中的更改但排除其他分支。示例场景是,我有多个分支,例如dev
, test
,beta
分支。所以我有这个示例配置azure-pipelines.yml
dev
它工作正常,它在我的 azure devops 中触发 CI 构建。但问题是,在我切换到我机器上的其他分支之后,假设test
我更新了azure-pipelines.yml
这样的内容:
并将其推送到原点,CI for test
and dev
are trigger 并且它们的分支标记在test
分支中。这是错误的,因为dev
不应包含或触发 CI。
我还确保每个 CI 构建都使用azure-pipelines.yml
指定给特定分支的那个。这就是为什么我不知道为什么它不能正常工作。
azure-devops - 单一存储库中 PR 的 Azure DevOps 管道结构
我有一个包含多个子项目(如果重要的话是 Node/TypeScript)的 mono-repo。我正在尝试在 Azure DevOps 中设置我认为相对简单的拉取请求设置,旨在部署 PR 环境进行测试。它由 2 个管道组成,我想在 PR 中一个接一个地触发它们。如果其中任何一个失败,PR 也应该失败。代码托管在 Azure DevOps Git 中。
以下是我试图实现的步骤:
- PR 是用标签创建的,
solution-a
用于从分支合并features/feature-x
到dev
分支 - 分支策略
solution-a-pipeline
基于标签触发solution-a
。如果标签不同,则应触发不同的管道。 solution-a-pipeline
按顺序触发infrastructure-pipeline
并在分支* 的solution-a-build-pipeline
上下文中。features/feature-x
- 如果
solution-a-pipeline
成功完成(间接这意味着infrastructure-pipeline
并且solution-a-build-pipeline
也按顺序成功完成),则认为 bulid 成功。否则失败,无法完成 PR。
*“在上下文中”是指用于每个管道的实际 yaml 文件是来自功能分支的文件。这是因为我希望它测试对管道的任何更改以及管道中的任何步骤。
有没有办法做到这一点?几天来,我一直在尝试使用管道文件、模板、资源和触发器的不同组合,但我似乎无法理解它。
git - 仅在更改某些文件时运行 Azure Pipelines 作业
我有一个包含 Dockerfile 和其他代码的存储库。无论发生了什么变化,我们都希望运行某些步骤,但只想在发生变化docker build
时运行作业**/Dockerfile
。
我已经查看了条件文档和表达式文档,但我不清楚如何(如果可能的话)如何组合这些或以其他方式达到预期的结果。
我意识到它在bash
(例如git rev-list...
和git diff --name-only <previous_commit>..HEAD | grep <pattern>
)中是可能的,但这有点麻烦,它仍然在 Azure Pipelines 中显示该作业已运行,它只是短路了。理想情况下,它会(适当地)显示该作业被一起跳过。
我还意识到 Docker 部分和代码部分可以位于具有单独构建触发器的单独存储库中,但如果可能的话,希望将它们放在同一个存储库中。
azure-devops - Azure DevOps Pipeline 在部署中定义变量并在后续作业中重用
我正在使用 Azure DevOps 管道来部署我的代码,现在我需要将变量值从部署作业传递到依赖它的后续作业。我已经阅读了这个例子,但它似乎根本不起作用。
我要做的是运行一个预配 Key Vault 的 Azure ARM 部署。密钥保管库的名称是从 ARM 部署作业中输出的,然后我尝试将该名称传递给另一个需要添加特定机密的作业。访问控制已处理,但我仍然需要传递名称。
我将问题归结为将变量从 a 传递deployment
到 a的基础知识job
。这是我完整的测试管道(几乎完全从这里复制):
一旦我运行这个,回显的值在作业中是空白的B
,但在部署中定义A
。为什么是这样?有没有办法把所有东西都放进去,dependencies.A.outputs
这样我就可以看到我必须处理什么?
如何将变量从runOnce
部署作业传递到常规作业?
azure-devops - 我可以在 Azure DevOps 管道库中的变量组中强制使用相同的变量吗?
我在管道库下定义了几个变量组。我为每个发布环境使用不同的组(例如,DEV、QA、PROD)。每个环境的部署都需要所有相同的变量,但具有不同的值。
这是一长串变量,当我们添加和删除变量时,我无法判断我的组是否会随着时间的推移而彼此不同步。
我真的希望我有类似 C# 接口的东西来使所有组匹配。我希望新的 YAML 模板能以某种方式提供帮助,但我找不到任何可以解决这个问题的方法。
有人对此有很好的解决方案吗?这似乎是变量组的一种非常常见的用法。