forked from dotnet/Nerdbank.Streams
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
158 lines (136 loc) · 4.55 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
trigger:
branches:
include: ["master", "v2.*"]
paths:
exclude: ["doc", "*.md", ".appveyor.yml", ".travis.yml"]
variables:
TreatWarningsAsErrors: true
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
BuildConfiguration: Release
BuildPlatform: Any CPU
codecov_token: b8be69b5-6dc3-40f8-a4c7-4e13a42654a3
resources:
containers:
- container: xenial
image: andrewarnott/linux-buildagent
jobs:
- job: Windows
pool: Hosted VS2017
steps:
- task: DotNetCoreInstaller@0
displayName: Install .NET Core SDK 2.2.104
inputs:
packageType: sdk
version: 2.2.104
- script: |
dotnet tool install --tool-path .. nbgv
..\nbgv cloud
workingDirectory: src
displayName: Set build number
- script: dotnet --info
displayName: Show dotnet SDK info
- task: DotNetCoreCLI@2
displayName: Restore NuGet packages
inputs:
command: restore
verbosityRestore: normal # detailed, normal, minimal
projects: src/**/*.sln
feedsToUse: config
nugetConfigPath: src/nuget.config
workingDirectory: src
- task: VSBuild@1
inputs:
vsVersion: 15.0
msbuildArgs: /t:build /m /v:m /bl:"$(Build.ArtifactStagingDirectory)/build_logs/msbuild.binlog"
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
displayName: Build Visual Studio solution
- task: DotNetCoreCLI@2
displayName: Run tests
inputs:
command: test
projects: src/Nerdbank.Streams.Tests/Nerdbank.Streams.Tests.csproj
arguments: --configuration $(BuildConfiguration) --no-build --filter "TestCategory!=FailsInCloudTest" -v n
workingDirectory: src
- template: azure-pipelines/node.yml
parameters:
projectdirectory: src/nerdbank-streams
- task: CopyFiles@1
inputs:
Contents: |
bin/*-*.tgz
TargetFolder: $(Build.ArtifactStagingDirectory)/deployables
flattenFolders: true
displayName: Collecting NPM package artifacts
- task: CopyFiles@1
inputs:
Contents: |
obj/**/project.assets.json
TargetFolder: $(Build.ArtifactStagingDirectory)/projectAssetsJson
displayName: Collecting project.assets.json artifacts
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/projectAssetsJson
ArtifactName: projectAssetsJson
ArtifactType: Container
displayName: Publish projectAssetsJson artifacts
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/build_logs
ArtifactName: build_logs
ArtifactType: Container
displayName: Publish build_logs artifacts
condition: succeededOrFailed()
- task: DotNetCoreCLI@2
displayName: Pack
inputs:
command: pack
projects: src/**/*.sln
nobuild: true
verbosityPack: normal
packDirectory: $(Build.ArtifactStagingDirectory)/deployables
- powershell: >-
$testdir="bin\Nerdbank.Streams.Tests\$(BuildConfiguration)\net461"
& "$HOME\.nuget\packages\OpenCover\4.6.519\tools\OpenCover.Console.exe"
-register:user
-target:"$HOME\.nuget\packages\xunit.runner.console\2.3.1\tools\net452\xunit.console.x86.exe"
-targetargs:"$testdir\Nerdbank.Streams.Tests.dll -noshadow -parallel all -notrait SkipInCodeCoverage=true -html $testdir\testresults.html -xml $testdir\testresults.xml -appveyor -nologo"
-returntargetcode
-excludebyattribute:*.ExcludeFromCodeCoverage*
-excludebyfile:*\*Designer.cs
-filter:"+[Nerdbank.Streams]*"
-hideskipped:All
-output:$testdir\code_coverage.xml
$env:PATH = "C:\Python34;C:\Python34\Scripts;$env:PATH"
pip install codecov
codecov -f "$testdir\code_coverage.xml"
displayName: Run tests on .NET Framework (with code coverage)
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/deployables
ArtifactName: deployables
ArtifactType: Container
displayName: Publish deployables artifacts
- job: Linux
pool:
vmImage: Ubuntu 16.04
container: xenial
steps:
- template: azure-pipelines/testfx.yml
parameters:
projectdirectory: src/Nerdbank.Streams.Tests
- template: azure-pipelines/node.yml
parameters:
projectdirectory: src/nerdbank-streams
- job: macOS
pool:
vmImage: macOS 10.13
steps:
- template: azure-pipelines/testfx.yml
parameters:
projectdirectory: src/Nerdbank.Streams.Tests
- template: azure-pipelines/node.yml
parameters:
projectdirectory: src/nerdbank-streams