问题标签 [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 回答
559 浏览

azure-pipelines - 将变量传递给 Azure YAML 管道中的模板

考虑来自 azure yaml 管道的以下工作

文档中,我希望我可以$(slotName)直接用运行时表达式替换 marco $[ dependencies.setup.outputs['slot.name'] ],结果如下:

但是如果你这样做,管道就会失败

在此处输入图像描述

从错误中,我得到的印象是$[ dependencies.setup.outputs['slot.name'] ]被踩在弦上。我在这里尝试的可能是什么,也许我的语法不正确。

0 投票
2 回答
4455 浏览

git - 在使用 YAML 配置时,清理 Azure DevOps Pipeline 设置中的所有构建目录都不起作用

我使用 Azure DevOps 有一段时间了,在制作 Build Pipeline 时我总是使用经典编辑器 GUI。现在我正在尝试使用 YAML 创建新的管道。一切顺利,构建成功。但是,与使用经典编辑器的管道相比,我注意到结帐任务中的不同行为。在两个管道中,“获取源”选项卡中使用的设置相同(请参见下面的屏幕截图)

在此处输入图像描述

在经典编辑器管道的情况下,签出任务删除并重新创建$(Agent.BuildDirectory).这将导致为每个构建初始化一个新的本地 Git 存储库。但是,对于 YAML 管道,签出任务仅执行git clean -ffdx和删除源目录。如何解决 YAML 管道的这个问题?

YAML 管道日志:

在此处输入图像描述

经典编辑器管道日志:

在此处输入图像描述

0 投票
1 回答
4959 浏览

azure-devops - Azure DevOps 多级管道 YAML:如何签出多个存储库?

我的 Azure DevOps 管道使用来自两个不同存储库的 yaml 模板,配置如下。

  1. 有一个应用程序存储库,其中包含可部署的应用程序和一个 yaml 文件 - 管道的“根”模板
  2. 模板库。根模板从模板存储库中调用其他模板和阶段。然后来自此存储库的模板调用其他模板和脚本(来自同一存储库)

模板存储库被引用为根模板中的资源。我没有找到一种方法来检查模板 repo 一次,然后在所有管道阶段使用模板和脚本。现在,我必须在需要使用其他模板或脚本的每个阶段手动克隆模板存储库。在每个阶段结束时,Azure Devops 都会清除克隆的存储库。是否有一种简单的方法可以只签出模板 repo 一次,或者以其他方式从子阶段引用其资源?

0 投票
2 回答
691 浏览

azure-devops - 是否可以在 Azure Pipelines 中使用 YAML 更新构建定义名称

我正在尝试根据 YAML 运行时参数更新构建定义名称。我能够像下面这样实现这一点

但我想通过提供条件表达式来更新构建名称。请让我知道这是否可以实现。

0 投票
1 回答
423 浏览

azure-devops - 无法在 azure YAML 中使用秘密定义运行时参数

我正在尝试创建一个秘密运行时参数,如GitHub中所述。但得到以下错误。

Encountered error(s) while parsing pipeline YAML: /azure-pipelines.yml (Line: 12, Col: 3): Unexpected value 'secret'

代码:

parameters: - name: app type: string values: - App1 - App2 - name: mySecret type: string secret: true

我也在 开发者社区门户中提出了同样的问题。请让我知道是否有任何可能的方法。

0 投票
1 回答
1176 浏览

azure-devops - Azure 管道通用包任务失败并出现错误“提供的包名称无效”

来自我的管道的 Yaml 文件的片段,我在其中存档构建目录,将其发布到工件,然后尝试使工件作为 Azure Artifacts 中的通用包可用。

我在 Azure Artifacts 中创建了一个名为“MCU_Package”的提要。但是当运行文件时我得到这个错误:

这里有什么问题?

0 投票
1 回答
2526 浏览

azure-devops - 基于分支的条件构建,用于在阶段下使用不同模板的多阶段管道

如何通过分支触发使用“阶段”下的特定模板?

扳机:

阶段:

  • 模板:ci.yml

    条件:and(eq(['build.sourceBranch'], 'ci'))

  • 模板:prod.yml

    条件:and(eq(['build.sourceBranch'], 'prod'))

尝试了上述条件,但没有奏效。我得到“意外的价值条件”。任何帮助表示赞赏

***** 通过将条件作为参数传递给模板,尝试了一种解决方案:

阶段:

  • 模板:ci.yml

    参数:

    条件:and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/ci'))

  • 模板:prod.yml

    参数:

    条件:and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/prod'))

获取“意外的参数条件”

管道结构:

master.yml(包含运行时参数) 阶段:

模板:ci.yml

参数:

条件:and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/ci'))

模板:prod.yml

参数:

条件:and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/prod'))

ci.yml

阶段:

  • 阶段:BuildApp

  • 阶段:BuildWeb

  • 阶段:DeployLocal

产品.yml

阶段:

  • 阶段:BuildApp

  • 阶段:BuildWeb

  • 阶段:部署产品

0 投票
2 回答
272 浏览

azure - DevOps 管道自动化 - 基础设施和应用程序部署

我在使用Azure DevOps 管道的以下场景中遇到了实现问题

  1. 使用 ARM 模板在 Azure 订阅中预配两个资源
    • Azure 容器注册表
    • Azure Kubernetes 服务
  2. 将容器化的应用程序代码部署到 Kubernetes 集群

我能够在单个管道中执行这两个步骤。在将两个管道组合/集成为一个时需要一些帮助。

如何在没有任何人工干预的情况下自动执行上述两个步骤。该过程必须足够健壮,才能在上一步中创建的相同 ACR 和 AKS 中处理应用程序部署?

基础结构和应用程序代码都驻留在同一个 GIT/Azure 存储库中。

0 投票
3 回答
3137 浏览

azure - Azure Devops YAML Pipelines 中的手动触发阶段

我想在 YAML 中重新创建一个看起来像这样的管道。

发布管道

我已经成功地重新创建了第一行 (A) 管道。dependsOnenvironmentName和 环境认证的组合可以解决这个问题。但是,似乎没有办法在 YAML 中创建 B 和 C 管道。

我见过几个类似的问题,但大多数都不是我想要的,或者很老没有解决方案。我怀疑这现在不可能,但想问一下。

0 投票
1 回答
488 浏览

azure - 为什么我的多阶段完整 yaml azure devops 管道在移动到模板时会中断?

我在 azure devops 服务中有一个多阶段的完整 yaml 管道。不同的阶段包括构建阶段、开发阶段(将 azure 资源部署到 azure 资源组)和 UAT 阶段(将 azure 资源部署到不同的资源组)。一切都很好。但是我需要使用模板,因为我想重用这些步骤。将步骤移至模板后,开发阶段继续工作,但 UAT 阶段给出授权错误。值得一提的是,dev 和 uat 阶段针对不同的订阅使用不同的服务连接。但是为什么当我不使用模板并且突然将步骤移动到模板文件时它不起作用时它会起作用。这是一个已知的错误?

这是我在使用模板方法时遇到的错误:

这是不使用模板的管道(完美!)。

移动到步骤模板时(然后我收到错误消息):

这是模板结构父模板 - (azure-resource-deploy.yml):

从父级引用的模板:

(armt-参数-文件-transform.yml)

(天蓝色资源检查.yml)

(armt-deploy.yml)