visual-c++ - 使用 YAML 在本地构建 Azure DevOps 管道
问题描述
在将其推送到分支以测试可能的错误之前,如何在本地计算机上模拟 Azure Devops 管道的构建过程。
该解决方案在本地正确构建,没有错误和警告。也从 VS 命令行MSBuild
构建没有错误的解决方案,但在一些推送尝试中,管道构建会引发许多错误,主要与preprocessor defenition
和precompiled header
.
我想知道如何在我的机器上本地测试相同的过程而无需推送到 repo。
azure-pipelines.yml
-------------------
pool:
vmImage: 'vs2017-win2016'
steps:
- task: MSBuild@1
displayName: 'Build solution'
inputs:
platform: 'Win32'
configuration: 'release'
solution: 'mysolution.sln'
- task: VSTest@2
displayName: 'Run Test'
inputs:
platform: 'Win32'
Configuration: 'release'
testAssemblyVer2: |
**\*.Test.dll
!**\*TestAdapter.dll
!**\obj\**
runSettingsFile: project.Test/test.runsettings
codeCoverageEnabled: true
解决方案
如果您使用的是 git repsotiory,您可以创建另一个分支并发出拉取请求。只要拉取请求未设置为自动完成,代码就不会提交到存储库。
如果您使用的是 TFVC 存储库,则可以设置配置为失败的封闭式构建。该管道应该是原始管道的副本,但在生成管道的末尾添加一个 PowerShell 任务,该任务会引发终止错误。请务必在单独的分支上设置此门控构建,以免阻碍正常开发。
Write-Error "Fail here" -ErrorAction 'Stop'
您现在可以在没有实际提交代码的情况下发出拉取请求或触发门控构建。
如果需要其他代理,可以使用AzurePipelinesPS通过 Install-APAgent 命令在本地计算机上安装代理。
推荐阅读
- c# - 如何在 ASP.NET MVC 中使用对象属性计算新变量
- styled-components - SCSS 和 StyledComponent 的 stylelint 配置
- excel - 将 sheet1 中 col A 和 C 上的行与 sheet2 中 col B 和 D 上的行进行比较
- ios - 让 UIStackView 拥抱它的内容
- shell - 在脚本和子shell中捕获信号
- node.js - 一次性 Firebase 令牌
- javascript - Javascript 变量为空
- azure - 如何在 AKS NginX Ingress 中公开服务
- c# - WinForms - 创建和填充具有未知列数的列表的 DataGridView
- javascript - 为旋转元素设置正确的变换原点 x 和 y 值