我正在开发vNext build TFS 2015.我们如何将用户定义的变量从vNext构建传递给power shell脚本?我正在添加powershell脚本作为构建定义中的一个步骤.
powershell tfsbuild visual-studio-2015 tfs-2015 azure-pipelines
我有一个中等大小的ASP.NET MVC4解决方案,其中包含大约15个项目.我一直在VSTS中使用付费托管管道(VS 2017)来构建我的版本.虽然我一直在构建或打包步骤中随机获取下面的错误.重新运行构建,它将通过源代码中没有其他更改!没有其他错误,详细信息错误显示在构建日志中.它在解决方案的任何项目中随机出现.任何想法可能导致它或如何获得更多的错误信息,以避免它?
我的团队将VSTS与托管代理一起使用,并使用Visual Studio Test构建任务来运行所有测试并产生代码覆盖率。但是,“代码覆盖率 ”选项卡此后仍然为空,仅显示下载* .coverage文件的链接。
我实际上希望显示代码覆盖率结果,以及使用表格和图表测试哪些项目以及它们各自的覆盖率。
我们正在使用Visual Studio测试生成任务来测试选中了代码覆盖率的 net461程序集。
有些关联都是这个和这个问题,但不完全,因为我们只是使用MSTest的框架与内置Visual Studio的测试生成任务,(我的理解),这也应该自动发布的代码覆盖率结果。
我是否缺少使此Code Coverage视图正常工作的内容?谢谢!!
在Circle CI等CI工具上,一次测试运行的各个作业可以作为单独的检查报告给Github.以下是一次测试运行的结果,它在Ubuntu和macOS映像上运行不同的作业:
我还可以在Azure管道上创建一个管道,实现类似的结果,通过多个vmImages和不同的配置运行matrix.但这导致Github上只有一个"检查":
虽然Azure Pipelines本身在这种情况下运行6个不同的作业:
有没有办法配置Azure管道作为单独的GitHub检查报告管道的各个作业,类似于Circle CI?
如果单个测试因天蓝色管道失败,我想使构建管道失败。
Azure可以成功检测到我的测试进入了失败状态,但是它为整个构建管道提供了成功状态:
问题是,如果测试阶段失败,如何使azure给出失败的构建状态?
这是我的azure-pipelines.yml:
# Build ASP.NET Core project using Azure Pipelines
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core?view=vsts
pool:
vmImage: 'Ubuntu 16.04'
variables:
buildConfiguration: 'Release'
steps:
- script: |
dotnet build --configuration $(buildConfiguration)
dotnet test dotnetcore-tests --configuration $(buildConfiguration) --logger trx
dotnet publish --configuration $(buildConfiguration) --output $BUILD_ARTIFACTSTAGINGDIRECTORY
- task: PublishTestResults@2
inputs:
testRunner: VSTest
testResultsFiles: '**/*.trx'
- task: PublishBuildArtifacts@1
Run Code Online (Sandbox Code Playgroud) 对于Azure Pipelines yaml文件,我想在特定池中的每个代理上一次运行一组任务。当我查看工作策略矩阵时,它看起来是一个很好的解决方案,但是目前它无法提取我为此使用的变量。
与该问题相关的管道yaml文件是以下部分:
resources:
- repo: self
trigger: none
jobs:
- job: RunOnEveryAgent
strategy:
maxParallel: 3
matrix:
agent_1:
agentName: Hosted Agent
agent_2:
agentName: Hosted VS2017 2
agent_3:
agentName: Hosted VS2017 3
pool:
name: Hosted VS2017
demands:
- msbuild
- visualstudio
- Agent.Name -equals $(agentName)
steps:
- (etc.)
Run Code Online (Sandbox Code Playgroud)
使用此脚本,我尝试设置一个矩阵以在池中的三个代理中的每个代理上运行一次。但是,当我尝试在需求列表中引用该代理时,它不会选择它。实际的错误信息如下:
[错误1]在满足指定要求的托管VS2017池中找不到代理:
msbuild
视觉工作室
Agent.Name-等于$(agentName)
Agent.Version -gtVersion 2.141.1
如果我硬编码的代理名称也做的工作:
demands:
- msbuild
- visualstudio
- Agent.Name Hosted VS2017 3
Run Code Online (Sandbox Code Playgroud)
是否支持在池需求中使用这些变量?还是应该使用其他变量或表达式?
大图:我们正在使用Azure DevOps发布过程(到目前为止,我们在设计器中创建步骤,而不是在YAML管道中创建步骤)。我们发布到具有3个不同数据库的3个环境。该发行版的一部分是从DACPAC文件部署数据库。由于使用SqlPackage.exe直接发布到数据库不是很透明(您不会看到并查看实际的SQL脚本),因此我们希望分两个阶段进行发布:
问题:如何在阶段之间共享sql脚本文件,以及如何查看该脚本以进行批准。可以在不同的代理上触发阶段。
我已经试过:
还有其他建议吗?
我在Azure DevOps上为Service Fabric解决方案配置了一个构建管道,如下所示:
直到几天前,当某个特定的构建代理(专用)上的构建开始失败时,一切都很好,并出现以下错误(对于一些项目):
C:\ Program Files \ dotnet \ sdk \ 2.1.200 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.PackageDependencyResolution.targets(327,5):错误:资产文件'F:\ Agent03 \ w \ 84 \ s找不到\ src \ MyProject.Sam.Tiles.Domain \ obj \ project.assets.json'。运行NuGet软件包还原以生成此文件。
失败的任务是Build solution $(PathToSolution)一项。
奇怪的是,当在某些代理上运行时构建失败,但是对于其他代理,构建很好。
一些细节:
Use NuGet 4.x我认为,这项任务是最近开始使用NuGet v4.9.1的。我尝试使用v4.8.1没有运气;PackageReference格式,但是.sfproj项目使用packages.config文件dotnet restore任务,但尝试恢复该.sfproj项目的软件包时出现错误:
错误:无法找到.. \ packages \ Microsoft.VisualStudio.Azure.Fabric.MSBuild.1.6.7 \ build \ Microsoft.VisualStudio.Azure.Fabric.Application.props文件。请还原'Microsoft.VisualStudio.Azure.Fabric.MSBuild'Nuget程序包
关于什么可能导致此问题的任何想法?
azure-pipelines ×10
azure-devops ×8
azure-pipelines-release-task ×1
nuget ×1
powershell ×1
tfs-2015 ×1
tfsbuild ×1
vstest ×1