问题标签 [build-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.

0 投票
3 回答
1993 浏览

git - 如何根据提交消息触发 azure devops 构建管道?

我正在构建一个 Azure Devops 项目。该项目同时具有 UI 和后端应用程序代码。这两个代码都作为一个项目放置在 GitLab 中。但是不同的团队正在为 UI 和后端工作。我需要配置两个构建管道,一个用于 UI 更改,一个用于后端更改。

我需要的是根据提交消息触发特定的管道。IE; 如果进行了 UI 更改,则提交消息中将包含关键字“ UI_CHANGES ”。Azure DevOps 应该认识到这一点并触发 UI 构建管道。

当我用谷歌搜索时,我知道 Azure DevOps 不支持基于提交消息的过滤来触发新的构建管道。

我可以在这里使用 Git 标签吗?如果是,请指导我如何使用它。也欢迎任何其他可能的想法!

提前致谢。

0 投票
1 回答
405 浏览

azure-devops - 无法在 Azure DevOps Build Pipelines 中的队列时间设置自定义计数器

我已经使用自定义计数器的值设置了一个变量:

我使用此值Build number format在选项选项卡中设置:

我第一次运行它时,它工作正常,值0与使用计数器一样。我还选中了“排队时可设置”复选框,以便用户在手动触发构建管道时可以覆盖。但是,这并没有通过。

但是,如果我没有将变量设置为上面的计数器并将其设置为一个数字,例如 999,那么当我在队列时间将其设置为 567 时,它会被 567 覆盖,哪个是对的。

似乎计数器不允许您覆盖它。

笔记

在圣诞节之前,这是可行的,我想知道 DevOps 是否发生了变化,消除了覆盖自定义计数器的能力。

0 投票
2 回答
1438 浏览

azure - Azure DevOps 管道定义:如何在 GUI 和 yml 视图之间切换

我正在尝试确定是否有办法在 Azure DevOps 构建和发布管道定义中的 UI 和 yml 视图之间切换。

我喜欢 yml 视图,因为我有一个版本控制的构建过程。但是,有时 UI 视图更易于使用,尤其是在开始执行新的管道任务时。

我继承了一些通过 UI 编辑的构建,看起来像这个屏幕截图,但我在关联的 Azure DevOps Git Repo 的任何地方都找不到 yml 文件。我在哪里可以找到它?

当我选择 Edit Pipeline 它只显示 UI

但是,当我创建一个新的管道构建时,它会在 Azure DevOps Git Repo 主分支中创建一个 azure-pipelines.yml 文件。

  • 我继承的 UI 版本是一个历史版本,所以微软现在更喜欢 yml 文件吗?
  • 他们是否提供在现有构建的可视化和基于文本的构建定义之间切换的选项?
  • 我可以将我的 UI 构建导出到 yml 文件吗?我继承的一些构建和发布很复杂,我不知道从哪里开始手动将它们转换为 yml 文件。
  • 在我看来,能够将构建定义从 UI 到文本往返是一个非常有用的概念,你为什么要放弃这样的能力?也许它在 DevOps 路线图上但还没有优先级?

我查看了几个类似的问题/答案,但这是唯一一个与我的问题真正相似的问题/答案。但是,前段时间有人问过,Azure 中的情况变化非常频繁,因此现在可能存在该功能:

Azure DevOps - 使用 GUI 而不是 YAML 来编辑构建管道

感谢您的任何建议。

0 投票
2 回答
8790 浏览

asp.net-core - 在 dotnet pack 命令中添加“no-build:true”后,构建失败并显示“错误:进程 '/usr/bin/dotnet' failed with exit code 1”

如果我从DotNetCoreCLI@2任务中删除nobuild:true选项以打包项目(即创建 NuGet 包) ,CI 管道运行良好,但我无法理解除了不构建项目之外 nobuild 选项带来的特殊之处. 我不需要再次构建项目,因为上一个任务已经构建了项目并锁定了生成的 DLL 的程序集版本。我想使用相同的构建来创建 NuGet 包并执行相同的操作,我需要传递 NoBuild 选项,但这样做会破坏管道。

管道给出了要打包的 DLL 在指定位置不存在的错误,但我尝试查看该位置,我可以找到 DLL。让我感到困惑的一件事是,虽然我已将 nobuild 设为 true 但仍然任务显示为构建项目。

错误:

同样重要的是要注意同样的事情(nobuild:true)在 Windows 代理上有效,但在 Ubuntu 代理上失败。

PS:可能是Windows升级了代理并导致了问题。我搜索了这个问题,发现必须在构建管道中锁定 .net SDK

0 投票
1 回答
1455 浏览

azure-devops - 记录错误但管道通过时管道失败

我正在寻找一种在记录任何错误时使构建管道失败的方法。我发现了许多情况(npm、单元测试和其他),当异常/错误/问题发生导致管道中记录并显示错误但构建管道结果时成功(没有人觉得需要检查详细信息,因为管道通过并显示绿色成功这就是问题所在)。

三个任务('script'、'Bash'、'Powershell')具有选项“failOnStderr”(设置为 true 会在将任何内容写入 stderr 时使步骤失败),这似乎是解决此问题的准确方法,但其他任务(如 ' vstest'、'cake build' 等)没有。

'task' 的 Yaml 方案不提供在记录错误时使任务失败的选项。

谢谢您的帮助 : ]

0 投票
2 回答
4327 浏览

azure-devops - Angular (8) 应用程序构建一次(使用生产配置)并部署到多个环境

我有一种情况,我正在尝试使用生产配置构建我的 Angular 应用程序并部署到多个环境,例如ng build --configuration=production

这里的工作流程是当我使用上述命令(ng build --configuration=production)构建时, environment.ts 文件被 environment.prod.ts 替换

我在 environment.prod.ts 中的配置如下,

我在 environmrnt.test.ts 中的配置如下,

我对 angular.json 文件的设置如下,

如果我分别为每个环境构建解决方案并部署到适当的环境,如下图所示, 在此处输入图像描述

它的作用就像魅力,这意味着,

testApp与 _webApiHost 通信:testsomename.company.com/api/和 prodApp 与_webApiHost通信:prodsomename.company.com/api/

在上述情况下,QA 测试的工件与部署到生产的工件不同,这不是将代码推送到生产的理想方式。

但我担心的是我只想构建应用程序并将其部署到多个环境,每个环境将与适当的 api 通信,如下图所示, 在此处输入图像描述

当我使用命令ng build --configuration=production构建它时, environment.ts 文件将具有生产配置,

因此,如果将该工件部署到测试环境,则testApp正在尝试与_webApiHost: 'prodsomename.company.com/api/ 进行通信,这是不对的。

这是我用来构建解决方案的 Azure DevOps 构建管道 powershell 脚本。

我曾尝试在线搜索解决方案,但找不到任何解决方案。请帮助我解决问题。我将非常感谢您的时间和帮助。提前致谢。

0 投票
1 回答
1833 浏览

.net - Azure DevOps 在构建管道上从多个源还原包

今天,我试图在 NuGet 还原阶段修复来自多个源的构建管道,但无法找到要使用的正确设置。

我有三个不同来源的包,

  1. 公共 Nuget
  2. 私有 Azure DevOps 工件。
0 投票
1 回答
70 浏览

azure-devops - 队列时间变量设置不会覆盖默认表达式

我正在尝试创建一个新的构建管道,它将为发布分支和主分支运行几乎相同的步骤。我还希望允许使用队列时间变量覆盖管道的构建样式(发布与主分支)。

这是定义的变量:

1]

当我在排队时设置变量时,计算值:

2]

并找到排队时间变量:

3]

但是当我去访问这个值时:

4]

值为假:

5]

我是否做错了什么或期望排队时间变量的功能与其设计的不同?我认为它们会覆盖管道中定义的原始值。

0 投票
1 回答
65 浏览

azure - 向我们的发布管道添加了无代理作业,但它失败了

向我们的发布管道添加了代理少的工作,但它失败了,请指教

错误:2020-02-11T19:31:58.7824352Z ##[错误]在构建管道 ID 241 中找不到 ID 为 321656 的构建

失败

0 投票
2 回答
1192 浏览

azure-devops - 在 Azure Devops 中编写 EF6 迁移脚本

我有一个 EF6 项目,我想为迁移生成一个脚本。在本地,我只是运行update-database - script,但我想创建一个构建管道来为此生成一个脚本,然后是一个部署管道,当我们准备好推送到不同的环境时执行这个脚本。无论如何要在 Azure Devops Build Pipeline 中生成这样的脚本吗?