forked from microsoft/slow-cheetah
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.vsts-ci.yml
168 lines (146 loc) · 5.29 KB
/
.vsts-ci.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
159
160
161
162
163
164
165
166
167
168
trigger:
branches:
include: ["master"]
paths:
exclude: [".github", "doc", "*.md"]
queue:
name: VSEng-MicroBuildVS2017
timeoutInMinutes: 60
steps:
- task: PowerShell@2
displayName: Set VSTS variables
inputs:
targetType: inline
script: |
if ($env:SignType -eq 'Real') {
$feedGuid = '09d8d03c-1ac8-456e-9274-4d2364527d99' ## VSIDE-RealSigned-Release
} else {
$feedGuid = 'da484c78-f942-44ef-b197-99e2a1bef53c' ## VSIDE-TestSigned-Release
}
Write-Host "##vso[task.setvariable variable=feedGuid]$feedGuid"
if ($env:ComputerName.StartsWith('factoryvm', [StringComparison]::OrdinalIgnoreCase)) {
Write-Host "Running on hosted queue"
Write-Host "##vso[task.setvariable variable=Hosted]true"
}
- task: CmdLine@2
inputs:
script: |
del /s /q "bin"
displayName: Purge bin
- task: NuGetToolInstaller@0
displayName: Pin nuget.exe version
inputs:
versionSpec: 4.6.1
- task: MicroBuildSigningPlugin@1
inputs:
signType: $(SignType)
esrpSigning: true
zipSources: false
displayName: Install MicroBuild Signing plugin
- task: VSBuild@1
inputs:
vsVersion: 15.0
solution: 'src\SlowCheetah.sln'
msbuildArgs: /t:Restore
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
displayName: Restore SlowCheetah solution
- task: VSBuild@1
inputs:
vsVersion: 15.0
solution: 'src\SlowCheetah.sln'
msbuildArgs: '/bl:"$(Build.ArtifactStagingDirectory)/build_logs/slowcheetah.binlog"'
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
displayName: Build SlowCheetah solution
- task: MicroBuildCodesignVerify@1
inputs:
TargetFolder: $(Build.SourcesDirectory)\bin\$(BuildConfiguration)\packages
WhiteListPathForCerts: $(Build.SourcesDirectory)\src\build\no_authenticode.txt
WhiteListPathForSigs: $(Build.SourcesDirectory)\src\build\no_strongname.txt
displayName: Verify code signing
- task: VSTest@2
inputs:
testFiltercriteria: TestCategory!=FailsInCloudTest
searchFolder: $(System.DefaultWorkingDirectory)\bin\
testAssemblyVer2: |
$(BuildConfiguration)\**\*test*.dll
!**\obj\**
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
displayName: Run Tests
condition: and(succeeded(), ne(variables['SignType'], 'real'))
- task: MicroBuildCleanup@1
displayName: MicroBuild Cleanup
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/MicroBuild/ESRPClient
ArtifactName: esrpclient_logs
ArtifactType: Container
displayName: 'Publish Artifact: ESRP signing logs'
condition: eq(variables['SignType'], 'real')
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/build_logs
ArtifactName: build_logs
ArtifactType: Container
displayName: 'Publish Artifact: build logs'
condition: succeededOrFailed()
## Following steps are skipped in PR builds
- task: CopyFiles@1
displayName: Collecting symbols artifacts
inputs:
SourceFolder: bin/$(BuildConfiguration)/net461
Contents: |
**/Microsoft.VisualStudio.SlowCheetah?(*.dll|*.pdb|*.xml)
!**/*Test*
TargetFolder: $(Build.ArtifactStagingDirectory)/symbols
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: PublishSymbols@2
inputs:
SymbolsFolder: $(Build.ArtifactStagingDirectory)/symbols
SearchPattern: '**\*.pdb'
SymbolServerType: TeamServices
displayName: Archive symbols to VSTS
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['SignType'], 'real'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/symbols'
ArtifactName: symbols
publishLocation: Container
displayName: 'Publish Artifact: symbols'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: ms-vscs-artifact.build-tasks.artifactSymbolTask-1.artifactSymbolTask@0
inputs:
symbolServiceURI: 'https://microsoft.artifacts.visualstudio.com/DefaultCollection'
requestName: 'CollectionId/$(System.CollectionId)/ProjectId/$(System.TeamProjectId)/BuildId/$(Build.BuildId)'
sourcePath: '$(Build.ArtifactStagingDirectory)/symbols'
usePat: false
displayName: Publish Symbols to symweb
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['SignType'], 'real'))
- task: CopyFiles@1
displayName: Collecting packages
inputs:
SourceFolder: bin/$(BuildConfiguration)/packages
Contents: |
*.nupkg
*.vsix
TargetFolder: $(Build.ArtifactStagingDirectory)/packages
flattenFolders: false
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: PublishBuildArtifacts@1
displayName: Publish packages
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/packages
ArtifactName: packages
ArtifactType: Container
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: NuGetCommand@2
inputs:
command: push
searchPatternPush: 'bin/$(BuildConfiguration)/packages/*.nupkg'
publishVstsFeed: $(feedGuid)
allowPackageConflicts: true
displayName: Publish Sdk NuGet packages to VSTS feeds
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))