问题标签 [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.
powershell - Web App 添加任务所需的发布代理配置
为了在 IIS 下创建目录并将 Web 应用程序添加到 IIS,我将此脚本放在 Azure DevOps 服务器部署组作业 Powershell 任务中:
当此任务运行时,它会引发错误:(为清楚起见,删除了时间戳)
APP 对象“默认网站/MyNewApp”已更改
错误(hresult:80090016,消息:无法提交配置更改。
键集不存在)
在以我自己或服务帐户登录的情况下从 Powershell 控制台执行上述代码后,将返回以下消息:
添加了 APP 对象“默认网站/MyNewApp”
添加了 VDIR 对象“默认网站/MyNewApp”
我可以在 IIS 管理器中确认已创建目录和应用程序。
我无法在控制台中重现该错误。只有当它作为 Release Agent 运行并通过 DevOps Server Web 界面启动时才会发生此错误。
我尝试了以下方法:
- 密钥集问题 - https://support.microsoft.com/en-us/help/977754/keyset-does-not-exist-error-message-when-you-try-to-change-the-identit本地服务和服务帐户。
- Up-to 修改服务帐户的 C:\inetpub\wwwroot 权限
- 将服务帐户添加到 IIS 管理器权限
更新 1:
我确定“密钥集不存在”错误是由于尝试使用 DefaultAppPool 应用程序池作为设置的一部分。此应用程序池未使用服务帐户设置,但仍使用默认应用程序池标识设置。
但是,在进行此更改后,我有一个新错误:
APP 对象“默认网站/MyNewApp”已更改
错误(hresult:80070057,消息:无法提交配置更改。
参数不正确。)
...
进程“appcmd.exe”以代码“87”退出。
非常感谢任何指导。
更新 2:
我记录了当前正在查看的 Microsoft 社区问题。你可以在这里看到它。
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 message
,Stack Trace
等等(虽然不会被读取/填充<testsuite>
)。
这同样适用于允许在 XML 中引用额外附件文件的 JUnit 格式扩展。
现在,如果这是一个构建管道,我不会在意,只需使用该PublishBuildArtifacts
任务添加一些 .TXT 附件(每个场景/套件一个)并完成。但是,此任务不能在发布管道中使用。
我确实需要每个套件的扩展摘要/统计信息,并且我不能将它们放在 XML 中的某个位置,可以在采取几个可能晦涩的步骤后下载它们。这会自动排除将它们上传到其他地方的可能性——如果 CI/CD 在 Azure DevOps 中,那么关于它的所有内容都应该保留在那里。
我可以完全控制测试结果 XML 的生成。
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 执行
azure-devops - Azure Dev ops 替换发布管道中每个环境的令牌
我正在使用替换令牌扩展https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens替换 **/*.config 文件中的变量
我们的构建管道创建了一个需要部署到所有环境的工件
我们的发布管道中有 2 个环境(DEV,QA)
每个环境都配置了一组变量
我已将替换令牌任务添加到我们的发布管道中
我的配置文件看起来像这样
令牌没有被替换,我是 Azure DevOps 的新手,我在这里遗漏了什么吗?
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
.
azure-pipelines - Azure Pipeline:将变量从构建传递到发布管道
我正在构建一个泊坞窗图像并将其BuildNumber
用作图像标签。
后来,在我的发布管道上,我想获取这个值并在azure cli
任务中使用它。
我知道Build.TriggeredBy.BuildNumber
变量,但发布可能是手动触发的,我希望它使用构建任务中的 buildNumber。
我想过将值写入文件并将其打包到工件中,但是我看不到如何在发布管道中使用它。
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 标志的不同变体,但都导致了相同的错误消息。
- 我只是对命令使用了不正确的语法,还是可选参数严格只接受参数而不接受标志?
- 有没有办法忽略此任务中的某些文件和文件夹?
.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 文件是;
构建失败,日志如下;