Rob*_*man 3 yaml .net-core azure-devops azure-pipelines azure-pipelines-yaml
我有一个 devops yaml 管道,它运行 DotNetCoreCLI@2 任务来恢复、构建和测试。
如果一个或多个测试失败,我希望管道继续并发布为 DevOps 版本做好准备的输出。
最初,如果测试失败,整个管道执行将报告“构建失败”。在构建管道 yaml 的顶部添加以下内容后:
jobs:
- job: Build
continueOnError: true
Run Code Online (Sandbox Code Playgroud)
我现在得到“构建部分成功”。
但是,当我检查管道执行摘要页面时,我发现有 0 个工件:
即使测试失败,如何使管道发布?
为了完整起见,完整的 yaml 如下
stages:
- stage: Build
jobs:
- job: Build
continueOnError: true
pool:
name: Hosted Windows 2019 with VS2019
demands:
- msbuild
- visualstudio
variables:
solution: '**/*.sln'
projects: '**/Interfaces.Avaloq.Presentation.AzureFunctions.csproj'
unitTestProjects: '**/*Testing.Unit*/*.csproj'
integrationTestProjects: '**/*Testing.Integration*/*.csproj'
buildPlatform: 'Any CPU'
buildConfiguration: 'Debug'
steps:
- script: |
- task: DotNetCoreCLI@2
displayName: Restore Functions
inputs:
command: restore
projects: '$(projects)'
feedsToUse: config
nugetConfigPath: nuget.config
- task: DotNetCoreCLI@2
displayName: Build Functions
inputs:
command: build
projects: '$(projects)'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Restore Unit Tests
inputs:
command: restore
projects: '$(unitTestProjects)'
feedsToUse: config
nugetConfigPath: nuget.config
- task: DotNetCoreCLI@2
displayName: Build Unit Tests
inputs:
command: build
projects: '$(unitTestProjects)'
arguments: '--configuration $(buildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Run Unit Tests
inputs:
command: 'test'
projects: '$(unitTestProjects)'
arguments: --filter Category!=ExcludeFromBVT
testRunTitle: 'Unit Tests'
feedsToUse: config
nugetConfigPath: nuget.config
- task: AzurePowerShell@4
inputs:
azureSubscription: 'Design Subscription (xxx)'
ScriptType: 'InlineScript'
Inline: |
Set-Location $env:AGENT_WORKFOLDER
Get-ChildItem -Recurse
azurePowerShellVersion: 'LatestVersion'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
arguments: '--configuration $(buildConfiguration) --output $(build.artifactstagingdirectory)'
projects: '$(projects)'
publishWebProjects: false
zipAfterPublish: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ArmTemplate'
inputs:
PathtoPublish: Interfaces.Avaloq.Deployment
ArtifactName: RGDeploy
Run Code Online (Sandbox Code Playgroud)
如果您的测试失败,请添加continueOnError: true测试步骤级别。将其添加到作业级别会导致下一个(依赖的)作业将运行。请比较一下这个:
| 归档时间: |
|
| 查看次数: |
3862 次 |
| 最近记录: |