问题标签 [multistage-pipeline]
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.
security - AzureDevOps YAML 管道 - 防止恶意使用生产服务连接
我创建了 YAML 管道并希望保护 PROD 服务连接,因此不应在 QA/UAT 阶段使用。我尝试添加对产品服务连接的批准以及 PROD 环境批准(用于 PROD 阶段),但我的管道在批准环境批准后立即失败并抛出错误。
“##[错误]作业正在使用尚未评估检查的受保护资源端点:XXXXXX。有关更多详细信息,请参阅https://aka.ms/pipelinechecks”
请您指导我如何修复它或实现对 PROD 服务连接的所需控制。谢谢。
azure-devops - 当另一个管道正在运行时,如何防止启动多级管道
我对多级管道有疑问。假设我有管道 A 和管道 B。
管道 A 如下:
- A.1 阶段
- A.2阶段
管道 B 如下:
- B.1 阶段
- B.2阶段
这些管道适用于放置在不同存储库上的不同触发器。
有时我们有以下行为:
- 管道 A 开始阶段 A.1
- 然后,在流水线 A 可以开始阶段 A.2 之前,流水线 B 由于其触发而启动并启动阶段 B.1(请注意,流水线 A 和 B 完全独立)
- 只有在 B.1 完成后,管道 A 才能在 A.2 上继续
我不抱怨顺序行为,我不想要并行运行。但我想告诉 Azure DevOps 在它开始另一个管道之前完成它。
总而言之,您能否告诉 Azure DevOps 在启动另一个管道之前完成一个多阶段管道?而且我不是在谈论同一管道的另一个实例,而是在谈论一个完全不同的管道。
azure-devops - 如何请求特定 Azure DevOps 阶段的更改请求 ID
我正在尝试构建一个多阶段管道以将应用程序部署到 Dev -> QA -> Production,并且我能够使用 Azure DevOps YAML 管道完成所有这些工作。此外,我希望对生产环境的任何部署都需要从批准部署到生产的人的更改请求 ID,基本上是一个文本字符串。它不需要对文本字符串的值进行任何验证,除非它不能为空,即必填字段。
我不希望 Dev 或 QA 的任何部署都需要更改请求 ID,只有当部署提升到生产环境时才需要更改请求 ID。
如何使用 Azure DevOps YAML 管道做到这一点?
azure-devops - Azure 管道:意外的值“步骤”
有人可以在这里指出我正确的方向吗?
当我尝试从主 yaml 模板启动管道时,参考模板给了我意想不到的“步骤”值。我试图在定义的作业之前添加一个阶段,然后收到意外的“阶段”消息。查看一些类似的先前提出的问题,我知道一个步骤不能直接放在“阶段”下,但这里不是这种情况。
azure-devops - Azure DevOps Yaml 管道:阶段条件变量语法
我正在开发一个 azure devops 多阶段 yaml 管道。我在第一阶段设置了一个变量,然后在下一阶段,我有一个基于该变量的条件。我还在下一阶段检索变量值。显然,在条件和阶段级别访问阶段间变量的语法略有不同。我无法弄清楚我需要在条件中使用的语法。我已经尝试了所有可能的变化,但似乎没有一个有效。在下面的示例中,我希望 lint 阶段能够运行,但它会被跳过。这里条件的确切语法应该是什么?
更新(答案):我为此提出了一个 MS 支持案例并得到了解决方案。正确的语法是
关于这个奇怪问题的几点:
- 使用阶段变量的语法对于在条件中使用它和使用它作为另一个变量传入是不同的。
- 同样,如果源阶段是作业,则语法是不同的,而如果源阶段是部署作业,则语法是不同的。
- 最重要的是,我在 MS 文档的任何地方都找不到正确的语法。
- 例如,我找不到任何诊断问题的方法:在构建日志中查看阶段输出 json 真的很有帮助。
- 最后,我相信 Azure DevOps 团队真的把这个功能搞砸了。作业/部署作业、条件和变量分配的语法应该是一致的。在这种状态下真的很痛苦。