问题标签 [azure-pipelines-release-task]

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

powershell - Web App 添加任务所需的发布代理配置

为了在 IIS 下创建目录并将 Web 应用程序添加到 IIS,我将此脚本放在 Azure DevOps 服务器部署组作业 Powershell 任务中:

当此任务运行时,它会引发错误:(为清楚起见,删除了时间戳)

APP 对象“默认网站/MyNewApp”已更改

错误(hresult:80090016,消息:无法提交配置更改。

键集不存在)

在以我自己或服务帐户登录的情况下从 Powershell 控制台执行上述代码后,将返回以下消息:

添加了 APP 对象“默认网站/MyNewApp”

添加了 VDIR 对象“默认网站/MyNewApp”

我可以在 IIS 管理器中确认已创建目录和应用程序。

我无法在控制台中重现该错误。只有当它作为 Release Agent 运行并通过 DevOps Server Web 界面启动时才会发生此错误。

我尝试了以下方法:

更新 1

我确定“密钥集不存在”错误是由于尝试使用 DefaultAppPool 应用程序池作为设置的一部分。此应用程序池未使用服务帐户设置,但仍使用默认应用程序池标识设置。

但是,在进行此更改后,我有一个新错误:

APP 对象“默认网站/MyNewApp”已更改

错误(hresult:80070057,消息:无法提交配置更改。

参数不正确。)

...

进程“appcmd.exe”以代码“87”退出。

非常感谢任何指导。

更新 2

我记录了当前正在查看的 Microsoft 社区问题。你可以在这里看到它。

0 投票
0 回答
76 浏览

azure - 带有套件级消息输出的 PublishTestResults

我很清楚我想做的事情目前是不可能的,所以我正在寻找一种解决方法。


首先,假设一个基于微服务的、高度模块化的应用系统。每个微服务都有自己的单元测试,在其构建管道中运行,结果发布到 Azure DevOps——此时没有问题。

但是,需要在正确部署的应用程序系统上运行一些集成(几乎是端到端)测试(我们称之为集成测试套件)。这是在指定的环境(我们称之为集成测试环境)上完成的。测试套件将在几个不同的场景中执行,因此输出需要反映这一点(这意味着如果有 4 个场景,则测试结果输出文件将有 4 个测试套件)。

除此之外,应用系统版本和它们的测试结果之间必须有直接可见的联系。

为了实现这一点,有一个发布管道,其中前三个阶段是:部署到 DEV、部署到 INT 和运行集成测试。

自然地,该PublishTestResults任务用于呈现集成测试结果的一个很好的概述。集成测试编排器应用程序正在生成一个 JUnit XML/场景,并在测试结束时将它们提供给管道。


话虽如此,问题来了:需要提供有关在每个场景/套件中运行的测试的某些统计数据(比在 Z 秒内成功的 X/Y 测试更有趣的东西)。

我知道 Jenkins CI 似乎遵循 Dirk Jagdmann 描述的JUnit XML 格式,即一个<testsuite>元素可以有一个<system-out>元素,这将出现在测试套件可视化中。

不幸的是(!),Azure DevOps PublishTestResults 任务<system-out>在单个<testcase>元素下读取(上面的链接显示了结果格式映射)。具有讽刺意味的是,测试套件和测试用例刀片的呈现方式几乎相同 - 它们都有Debug您拥有手风琴的部分Error messageStack Trace等等(虽然不会被读取/填充<testsuite>)。

这同样适用于允许在 XML 中引用额外附件文件的 JUnit 格式扩展。

现在,如果这是一个构建管道,我不会在意,只需使用该PublishBuildArtifacts任务添加一些 .TXT 附件(每个场景/套件一个)并完成。但是,此任务不能在发布管道中使用。


我确实需要每个套件的扩展摘要/统计信息,并且我不能将它们放在 XML 中的某个位置,可以在采取几个可能晦涩的步骤后下载它们。这会自动排除将它们上传到其他地方的可能性——如果 CI/CD 在 Azure DevOps 中,那么关于它的所有内容都应该保留在那里。

我可以完全控制测试结果 XML 的生成。

0 投票
2 回答
2929 浏览

azure-devops - Terraform 远程执行任务未连接到远程服务器 - 最后一个错误:拨号 tcp i/o 超时

我在 Azure DevOps、Azure Release 管道上运行 terraform。最终目标是启动 VM,安装并运行 Ansible,以便我们可以运行 playbook 来配置刚刚配置的 Windows 服务器。

但是,我收到以下错误:

但是,如果我从生成公钥和私钥的虚拟机运行相同的 terraform 代码,它就像一个魅力。请参阅下面的输出。

不确定问题是什么以及如何解决。

我可以看到的一件事是在 Azure DevOps 中运行 SSH 代理:假,而在我的本地 VM 上运行 SSH:代理:真

我将 code: 添加agent="true"连接块,但它给了我一些其他错误。PS:NSG如下:

现在,使用 NSG 到网络接口,如下所示:

最后参考VM创建块中的网络接口,如下所示:

希望全部从 Azure DevOs 执行

0 投票
1 回答
173 浏览

azure-pipelines - 发布管道:为 Azure Repos Git 工件选择不同的分支

拥有一个使用对配置类型存储库的引用的版本。

**在此处输入图片描述**

当我配置时,我可以将“默认”分支设置为 master:

在此处输入图像描述

当我创建一个版本时,我可以为主要构建工件选择一个分支:

在此处输入图像描述

但我无法选择 Git 存储库的分支,它固定在 master 上,并且没有可用的分支版本选择器:

在此处输入图像描述

我是否必须创建一个全新的管道来发布此工件的不同分支?那么Default,在配置的上下文中意味着什么?

谢谢 -

0 投票
1 回答
15514 浏览

azure-devops - Azure Dev ops 替换发布管道中每个环境的令牌

我正在使用替换令牌扩展https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens替换 **/*.config 文件中的变量

我们的构建管道创建了一个需要部署到所有环境的工件

我们的发布管道中有 2 个环境(DEV,QA)

每个环境都配置了一组变量

在此处输入图像描述

我已将替换令牌任务添加到我们的发布管道中

在此处输入图像描述

我的配置文件看起来像这样

在此处输入图像描述

令牌没有被替换,我是 Azure DevOps 的新手,我在这里遗漏了什么吗?

0 投票
1 回答
62 浏览

azure-devops - Azure DevOps 扩展 - 如何配置到我的扩展显示控制选项 > 运行此任务

我从 Azure DevOps 的扩展开始,默认配置有点问题。

我需要我的项目在控制选项中具有“运行此任务”选项,就像所有其他扩展一样。我正在寻找 Microsoft 官方和其他扩展存储库,但我找不到如何做到这一点。

这个配置对我来说非常重要,可以在之前的任务失败时进行回滚。

有人可以帮助我吗?

预期行为

图片

实际行为

图片

我的项目

存储库:https ://github.com/ThiagoBarradas/rancher-vss-ext 扩展:https ://marketplace.visualstudio.com/items?itemName=ThiagoBarradas.rancher

解决了

为了解决这个问题,经过多次尝试,我只需runOs要从我的task.json.

删除 runOs

0 投票
1 回答
180 浏览

azure-devops - 如何确保代理池的每个代理都执行一个发布阶段

我已经为 Azure 发布管道设置了一个多代理作业。代理池中有两个代理。该作业需要由代理池中的每个代理执行。

多代理工作

每当触发发布时,上面显示的设置会安排两个代理作业。如果在部署开始时两个代理都处于空闲状态,那么一切都会按预期进行,并且两个代理都会执行该作业。但是,一旦一个代理当时很忙,行为就会变得出乎意料,并且两个作业都由同一个代理连续执行

代理工作1 代理工作 2

如何确保代理池的每个代理都在执行定义的代理作业?

0 投票
1 回答
1289 浏览

azure-pipelines - Azure Pipeline:将变量从构建传递到发布管道

我正在构建一个泊坞窗图像并将其BuildNumber用作图像标签。
后来,在我的发布管道上,我想获取这个值并在azure cli任务中使用它。
我知道Build.TriggeredBy.BuildNumber变量,但发布可能是手动触发的,我希望它使用构建任务中的 buildNumber。
我想过将值写入文件并将其打包到工件中,但是我看不到如何在发布管道中使用它。

0 投票
1 回答
1212 浏览

azure-devops - 忽略 AzureBlob 文件复制任务中的文件/文件夹

我在发布管道中使用 AzureBlob 文件复制任务。我想从我的源工件中忽略某些文件和文件夹(例如 .gitignore、所有 .md 文件、.git 文件夹)。

任务的可选参数似乎不接受 AzCopy 标志 --exlude。我没有使用过 AzCopy,但它确实指定了

命令的一般格式为:'azcopy [command] [arguments] --[flag-name]=[flag-value]'。

我尝试使用 /Y /SetContentType /Z /V /S --exclude=*.md但出现错误

该命令的语法不正确。无法识别选项“--exclude=*.md”。

部署发布时。我还尝试了 --exclude 标志的不同变体,但都导致了相同的错误消息。

  1. 我只是对命令使用了不正确的语法,还是可选参数严格只接受参数而不接受标志?
  2. 有没有办法忽略此任务中的某些文件和文件夹?
0 投票
1 回答
1404 浏览

.net-core - Azure Pipeline - dotnet 构建失败并显示“错误 MSB3073:命令 netcoreapp2.2/ThisAssembly.Project.g.cs' 退出,代码 2。”

我的 netcoreapp2.2 项目在本地 VS 中成功构建,但在 Azure Pipeline 上失败。

下面的“脚本:dotnet build”任务是我在创建“新管道”时选择“ASP.NET Core”时添加的默认任务。我尝试将其更改为“DotNetCoreCLI@2”任务,但该任务因包不兼容错误而失败。在下面添加“NuGetToolInstaller@1”任务之前,我遇到了同样的错误。

此任务的 YML 文件是;

构建失败,日志如下;