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

azure-devops - Azure DevOps Pipelines - 规模集代理:安装 Docker

我们最近重新配置了构建过程以完全在容器中运行,我们现在正在寻求从本地构建代理迁移到使用 Azure 规模集中的代理。

我们希望避免为 Azure Scale Set 维护我们自己的 VM 映像,并选择使用 Azure 中可用的默认 Ubuntu 18.04 LTS 映像。

此映像不包含 Docker,因此我们已将 Azure 规模集配置为使用 cloud-config 脚本,该脚本将在 VM 首次启动时安装 Docker:

这似乎运作良好,但有时构建作业会失败:

在此处输入图像描述

看起来 cloud-init 脚本失败,或者在 cloud-init 脚本完成之前在 VM 上启动了 Azure DevOps 代理。

到目前为止,我已经看到了以下场景:

  • 配置新 VM 工作正常,作业正常运行
  • 前几个作业在新配置的 VM 上失败,然后正常运行。(可能是因为 cloud-init 脚本与将代理部署到 VM 的 Azure DevOps 扩展并行运行,并且您有竞争条件?)
  • 即使在 30 分钟之后,所有作业都会失败。有时重新构想 VM 会有所帮助,有时则没有。

有没有人有类似的设置?它工作正常吗?如果不是,在 VM 运行容器作业之前将 Docker 部署到 VM 的替代方法是什么?

0 投票
4 回答
1499 浏览

azure - 我可以从 Azure DevOps 向 Azure 中的 vm 运行 powershell 命令吗?

我如何能够在 Azure 中针对 Windows 2016 vm 运行 PowerShell 命令,而无需使用必须安装\配置自签名证书的 winrm 或 pssession?

有人知道吗

0 投票
1 回答
231 浏览

c# - 如何在 Azure DevOps Pipelines 中构建的解决方案中同时拥有 xUnit 和 NUnit?

我有一个 C# 解决方案,其中有几个使用 xUnit 的单元测试项目和一个使用 NUnit 的“端到端”测试项目。(这是故意的,很好,所以我很感激不要试图说服我放弃另一个,谢谢)

我使用 Azure DevOps Pipeline 来构建、测试和打包我的解决方案。这是我目前的测试步骤(来自 azure-pipelines.yml):

当我运行它时,我的管道失败并显示以下错误消息:

调用执行程序“executor://nunit3testexecutor/”时发生异常:选择表达式中位置 29 处的意外单词“类别”。

我很确定会发生这种情况,因为 NUnit 正在被拾取并且它不理解Category过滤器术语。(NUnit 期望使用该术语TestCategory

我尝试通过这种方式让管道不接收 NUnit 项目(称为“EndToEnd”):

但这不起作用,我收到相同的错误消息。

如何让 Azure DevOps Pipelines 在此步骤中仅在我的 xUnit 项目中运行测试,并且不会因为 NUnit 项目的存在而失败?

0 投票
2 回答
480 浏览

azure - Azure 管道:DownloadBuildArtifacts@0 任务 itemPattern,无法下载具有不同文件后缀和名称模式的 2 个文件

我正在使用 DownloadBuildArtifacts@0,我喜欢下载所有 *.ipa 文件以及 manifest.plist 文件。写作时:itemPattern: '**/*.ipa 它会下载我的 ipa 文件,但是当我这样做时:

它没有给我下载任何文件而不是 ipa 和 manifest.plist
什么是一直下载的正确模式?

0 投票
2 回答
180 浏览

linux - Azure Devops 管道,了解管道何时完成的方法,使用自托管代理

我有一个 Azure Pipeline,我使用 azure rest API 调用它

一切正常,我将源文件从安装自托管 Linux 代理发送到天蓝色,并将它们重新编译到自托管 Linux 代理中。

我的问题是如何知道管道何时在托管自托管 Linux 代理的服务器中完成?

有回调吗?或 API 我可以调用和查询管道作业是否完成?
或者只是在我接受获取已编译产品的目录上执行 while 循环?我想避免的最后一个选项。

0 投票
1 回答
169 浏览

macos - Azure 管道如何使用更大的服务器进行托管代理构建?

我不明白,但是如何在托管的 azure 管道构建服务器中设置为具有更多内存和更多 CPU 的更大机器?
我想避免在其中一个 Azure VM 上安装自托管代理我只想使用更强大的托管代理,我在哪里可以配置它?
我正在使用托管的 MAC 代理。

0 投票
1 回答
946 浏览

azure-devops - Dotnet 命令在单元测试套件上因非零退出代码而失败,没有明显的错误详细信息

我正在运行一个单元测试套件,突然 dotnet 退出并出现错误但我看不到与什么相关的错误?

0 投票
1 回答
2001 浏览

.net - 如何使用“.Net FrameWork 4.7”项目在 Azure DevOps Pipeline 上创建 Coverlet 覆盖率报告?

我目前正在尝试使用 Azure DevOps 上的管道创建 Coverlet 覆盖率报告。但是,由于我的项目是“.Net FrameWork 4.7”项目,我无法像“.Net Core”项目一样使用“DotNetCoreCLI@2”任务创建覆盖率报告。

这是我的管道代码:

当所有测试都成功时,我收到:

我还尝试使用 VSTest@2 并激活“CodeCoverageEnable”,但代码覆盖率与 Azure DevOps 不兼容,需要下载才能查看覆盖率报告。

这是我的 VSTest@2 管道代码:

有没有办法为我的“.Net FrameWork 4.7”项目创建与 Azure DevOps(Cobertura 或 JaCoCo)兼容的覆盖率报告,而无需更改项目 .Net FrameWork 版本或项目类型?

0 投票
0 回答
108 浏览

gmail-imap - 我在 azure 管道中访问 imap.gmail.com 时遇到问题

在我的自动化脚本的 selenium 中,我必须从我的外部测试用户(something@gmail.com)那里检索 MFA 代码。我正在使用此代码与 IMAP gmail 传入服务器交谈 using (ImapClient client = new ImapClient(GmailHostName, 993, email, ClientEmailPassword, AuthMethod.Login, true)) 当我在本地运行此测试时,它成功地从 gmail 帐户获取 MFA 代码。但在Azure Devops Pipeline中,相同的测试无法检索代码。这是来自 Azure 的错误: System.Net.Sockets.SocketException : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 108.177.122.109:993

0 投票
2 回答
799 浏览

azure-devops - 使用 Azure Devops 自托管构建代理避免 git clean

我在 Azure 托管的 git 存储库中有一个 YAML 构建脚本,它在本地 VM 上运行的 7 个构建代理中触发。每次运行时,构建都会执行一次 git clean ,这需要花费大量时间,因为一个大node_modules文件夹需要很长时间才能清理。

这里的 MSDN 页面似乎表明这是可配置的,但没有显示如何配置它的详细信息。我不知道这是应该在代理、YAML 脚本、管道上的 DevOps 中还是在哪里指定的设置。

有没有我遗漏的其他文件或者这是不可能的?

更新: YAML 文件的开头在这里:

完整的yaml要长很多,但是第一个作业的输出在Checkout任务中包含了这个输出

我们还有另一项工作,它运行npm installnpm build一个 Angular 项目中,管道中的每个构建都需要 5 分钟来执行 npm install 步骤,可能是因为检索存储库时这个 git clean ?