问题标签 [azure-yaml-pipelines]

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 回答
329 浏览

azure-pipelines - 多阶段 YAML Azure Pipeline 条件阶段可见性

我们正在着手将 Azure Pipelines 从 Classic 迁移到 YAML。基于条件逻辑,多阶段管道是否有可能在阶段列表中显示阶段?

例如,我们有多阶段管道,它们构建然后通过管道阶段部署到一个或多个环境。当构建发生在非主干分支上时,我们根本不希望某些环境可用于部署。我们有这个逻辑工作,但排除的环境阶段仍然出现,例如,在管道运行历史记录中。

我们可以根据条件逻辑让这些阶段完全不出现吗?

0 投票
1 回答
549 浏览

azure-devops - 使用模板在 Azure Devops 2020 yaml 管道中传递参数

我想实现一个 yaml 管道,以便我可以设置某些解决方案参数一次,然后在多个管道中使用它。目前我有:

天蓝色管道.yml

解决方案.yml

构建.yml

使用这种配置,我需要每个管道有两个 yml 文件,一个可以跨多个管道共享。有没有办法让每个管道有一个 yml 文件,同时将解决方案抽象成一个共享文件?

编辑 1

为了强调我们需要为我添加SomeOtherProperty的具有不同值的解决方案提供完整的语法

0 投票
1 回答
821 浏览

azure-devops - 如何终止(而不是取消)错误的 Azure Pipeline 运行、阶段、作业或任务?

我想知道如何终止 Azure Pipeline 任务(或任何级别的执行 - 运行、阶段、作业等),这样我就不会被阻止等待错误的管道完成执行或超时。例如,如果条件配置不正确,取消管道不会立即停止它。如果条件解析为 true,即使管道被取消,任务也会执行。如果您的组织/项目只有 1 个代理,这真的很痛苦。:(

0 投票
1 回答
680 浏览

azure - Azure Build Pipeline - 如何授予对存储帐户的访问权限?

目标:

从 Azure 管道按标记安全地获取 Azure 资源。

细节:

我有一个azure-pipelines.yaml构建静态网站并将其保存到硬编码的存储帐户。这是一个安全漏洞。

我现在需要更新文件以处理蓝绿部署,azure-pipelines.yaml需要获取标记为当前生产存储帐户的存储帐户,即类似于(只是一个 bash 脚本)

prod_storage_acct_name=$(az resource list --is_prod=true --query [0].name)

这可行,但是,它需要一个先验az login -u $un -p $pwd,我与我的用户一起测试。显然我不会把我的个人用户放在管道中,所以问题是......

问题:

  1. 让 Azure 管道访问另一个资源的最佳方式是服务主体帐户吗?
  2. 管道是否有一些内置方式来配置其访问权限而无需指定不同的服务主体,因为它们是“内置”Azure 进程?(在 Azure DevOps Powershell 管道任务中获取自己的服务主体名称似乎暗示内置了服务主体)
  3. 有没有更好的方法来做到这一点,我完全错过了?

如果我需要使用#1,这里最好的安全实践是什么?我是否只是将服务主体密码放入密钥库并在构建脚本中引用它?


也许是一种直观的提问方式:有什么方法可以基本上说“我是一个管道,我住在 Azure 上,让我使用我自己的访问权限进行此查询”?

0 投票
2 回答
691 浏览

azure-devops - Azure yaml 构建和发布管道

因此,我正在使用 azure YAML 管道在 Azure 应用服务上部署一个 Web 应用程序。

我这样做的方式是创建了 2 个 YAML 管道,一个用于构建,另一个用于发布,其中我为不同的环境提供了多阶段。例如;开发、测试和生产。

我将它分为两​​个管道的原因是我的构建管道会生成构建工件,并且通过使用发布管道上的资源部分,我可以选择先前生成的构建(从 UI)并将其部署到我想要的任何阶段。这个想法是,当我需要部署到其中一个阶段时,我不想每次都构建。我应该能够使用以前生成的工件以及旧的构建工件版本。下面是我的发布管道以及我如何使用资源部分。

发布管道

这运行良好。我可以从 UI 中选择以前的构建,并将该构建部署到我发布管道中的任何阶段。

问题:

  1. 在发布管道中,很难说当前在什么阶段部署了什么。我希望能够根据运行的内容来判断每个环境中的内容。所以就我而言,我有 3 个环境,我希望能够分辨出哪个运行是针对哪个环境的。因为经典 UI 管道有一个发布概念,它显示当前部署的工件仅在 1 个屏幕中。其中 YAML 对于我在 Runs 部分下的每个环境,您只能看到 3 个绿点,这并不能说明 Dev 阶段当前部署的内容。

  2. 我可以在一个管道中实现这一点,而不是创建 2 个管道吗?我可以只有 1 个管道来构建和发布吗?我知道可以有一个多阶段,我可以有一个阶段用于构建,而其他阶段用于我的发布。但是我如何能够选择以前的构建部署到任何阶段。因为我不确定我是否可以在这个用例中使用资源部分。想法是我不想一直运行构建。如果这是可以实现的,有人可以指导我更正文件吗?

谢谢你。

0 投票
1 回答
25 浏览

azure-yaml-pipelines - 在 Azure 中有多个管道触发器

我有一个管道,我们称之为 c。如果管道 a 或管道 b 完成,我希望 c 被触发。请看下面我的尝试。任何人都知道为什么它不起作用?

0 投票
1 回答
967 浏览

azure - 需要在 Azure 管道中使用变量组作为输入参数

我对 Azure 管道非常陌生,并且从过去一周开始我就陷入了一个问题。我有一个必须在管道上执行的 Selenium c# 测试用例。我必须使用变量组作为我的测试用例的输入参数。所以,我创建了 appsettings.json 文件 appsettings.json

在我的 YAML 代码中,我能够读取变量组,但我无法在管道中使用它的值。怎么做?

0 投票
1 回答
543 浏览

azure - 如何从 Azure 云外壳运行 yaml 文件

我使用 Azure CLI在Azure Kubernetes 服务 (AKS) 集群上创建了一个 Windows Server 容器。在尝试将我的aspnet core应用程序部署到 AKS 群集时,我被困在上述链接的这一步。我的硬盘上有sample.yaml文件,需要使用以下命令在Azure 云 shell中运行:Windows-10

问题:我可以将上述sample.yaml文件放在哪里,以便在其中运行上述命令Azure Cloud Shell?我假设它可能必须在我的 Azure 存储帐户中的某个位置,但它应该放在哪里,以便上面的命令可以识别它的路径?目前它给出了一个预期的错误:the path "sample.yaml" does not exist

0 投票
2 回答
415 浏览

azure-devops - 无法识别 Get-AzApplicationInsights

我构建了一个新的 Azure Pipeline 并添加了这个“Azure CLI”任务来尝试运行一些 Azure CLI Powershell 脚本。首先,我想对现有的 AppInsights 资源进行一些检查。(Azure CLI) https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureCLIV2/Readme.md

在 Azure CLI 任务中运行“Get-AzApplicationInsights”时出现此错误。

整个 yaml 脚本如下所示:

关于为什么无法识别 cmdlet,我是否遗漏了什么?我应该先导入一个模块吗?

0 投票
2 回答
113 浏览

azure-devops - Azure DevOps:YAML 延续触发器启动一些管道而不是其他管道 - 如何调查此问题?

我有四个 YAML“发布”管道,我使用相同的 YAML 语法来定义延续触发器。这是触发器的 YAML 定义。

不太确定这种语法,我没有指定任何分支,但直到最近一切正常。最近我更新了两个 YAML 发布管道,它们现在在构建管道完成时不会被触发。如果手动执行,所有管道都可以正常工作。

所有发布管道都具有用于延续触发器定义的相同 YAML(见上文),并为“手动和计划构建的默认分支”设置相同的分支。

我不知道如何调查为什么某些发布管道没有被触发(任何地方都有可用的日志?)而且我没有看到它们执行和失败,它们根本没有被触发。我该如何调查这个问题?