forked from microsoft/vs-mef
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.vsts-ci.yml
145 lines (125 loc) · 4.53 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
trigger:
branches:
include: ["master", "v15.6"]
paths:
exclude: ["doc", "*.md"]
steps:
- task: PowerShell@2
displayName: Set VSTS variables
inputs:
targetType: inline
script: |
if ($env:SignType -eq 'Real') {
$feedGuid = '09d8d03c-1ac8-456e-9274-4d2364527d99'
} else {
$feedGuid = 'da484c78-f942-44ef-b197-99e2a1bef53c'
}
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 "%userprofile%\.nuget\packages"
del /s /q "%LocalAppData%\NuGet\Cache"
del /s /q "%AppData%\tsd-cache"
displayName: Purge package caches
condition: and(succeeded(), ne(variables['Hosted'], 'true'))
- task: MicroBuildIBCMergePlugin@0
inputs:
branch: lab/vsuvscore
condition: and(succeeded(), ne(variables['Hosted'], 'true'))
- task: MicroBuildSigningPlugin@1
inputs:
signType: $(SignType)
esrpSigning: true
zipSources: false
- task: NuGetToolInstaller@0
inputs:
versionSpec: 4.6.2
displayName: Pin nuget.exe version
- task: NuGetCommand@2
inputs:
restoreSolution: '**\*.sln'
feedsToUse: config
nugetConfigPath: src/nuget.config
displayName: Nuget restore packages
- task: VSBuild@1
inputs:
vsVersion: 15.0
msbuildArgs: /t:build,pack /m /v:minimal /bl:"$(Build.ArtifactStagingDirectory)\build_logs\$(BuildConfiguration)\msbuild.binlog"
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
displayName: Build Visual Studio solution
- task: MicroBuildCleanup@1
condition: succeededOrFailed()
- task: PowerShell@2
displayName: Collect logs
inputs:
targetType: inline
script: |
robocopy obj "$(Build.ArtifactStagingDirectory)\build_logs\obj" project.assets.json /s
ignoreLASTEXITCODE: true
condition: succeededOrFailed()
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)\build_logs
ArtifactName: build_logs
ArtifactType: Container
displayName: 'Publish Artifact: build logs'
condition: succeededOrFailed()
## The rest of these steps are for deployment and skipped for PR builds
#- task: PublishBuildArtifacts@1
# inputs:
# PathtoPublish: $(build.sourcesdirectory)/bin
# ArtifactName: bin
# ArtifactType: Container
# condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: CopyFiles@1
inputs:
SourceFolder: bin
Contents: |
**/$(BuildConfiguration)/**/Microsoft.VisualStudio.Composition?(.Configuration)@(.pdb|.dll)
Microsoft.VisualStudio.Composition.NetFxAttributes.*/$(BuildConfiguration)/**/*@(.pdb|.dll)
!Tests/**
TargetFolder: $(Build.ArtifactStagingDirectory)/symbols
displayName: Collecting symbols artifacts
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/symbols
ArtifactName: symbols
ArtifactType: Container
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: CopyFiles@1
inputs:
Contents: |
bin\$(BuildConfiguration)\Packages\Microsoft.VisualStudio.Composition.15.*
bin\$(BuildConfiguration)\Packages\Microsoft.VisualStudio.Composition.AppHost.15.*
bin\$(BuildConfiguration)\Packages\Microsoft.VisualStudio.Composition.NetFxAttributes.*
TargetFolder: $(Build.ArtifactStagingDirectory)/deployables
flattenFolders: true
displayName: Collecting deployables
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/deployables
ArtifactName: deployables
ArtifactType: Container
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: PublishSymbols@2
inputs:
SymbolsFolder: $(Build.ArtifactStagingDirectory)/symbols
SearchPattern: '**/*.pdb'
IndexSources: false
SymbolServerType: TeamServices
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- task: NuGetCommand@2
inputs:
command: push
searchPatternPush: '$(Build.SourcesDirectory)\bin\**\$(BuildConfiguration)\**\*.nupkg;!**\*.symbols.nupkg;!**/VS.*.nupkg'
publishVstsFeed: $(feedGuid)
allowPackageConflicts: true
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))