Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 3d689a2

Browse files
authoredAug 9, 2019
Use YAML stages (#2162)
* Set DotNetValidationArtifactsCategory * Remove DotNetValidationArtifactsCategory
1 parent 6378ce7 commit 3d689a2

File tree

1 file changed

+273
-263
lines changed

1 file changed

+273
-263
lines changed
 

‎azure-pipelines.yml

+273-263
Original file line numberDiff line numberDiff line change
@@ -26,274 +26,284 @@ pr:
2626
include:
2727
- '*'
2828

29-
jobs:
30-
- job: Code_check
31-
displayName: Code check
32-
workspace:
33-
clean: all
34-
pool:
35-
vmImage: vs2017-win2016
36-
steps:
37-
- powershell: . ./activate.ps1; ./restore.cmd -ci; ./eng/scripts/CodeCheck.ps1 -ci
38-
displayName: Run eng/scripts/CodeCheck.ps1
29+
stages:
30+
- stage: build
31+
displayName: Build
32+
jobs:
33+
- job: Code_check
34+
displayName: Code check
35+
workspace:
36+
clean: all
37+
pool:
38+
vmImage: vs2017-win2016
39+
steps:
40+
- powershell: . ./activate.ps1; ./restore.cmd -ci; ./eng/scripts/CodeCheck.ps1 -ci
41+
displayName: Run eng/scripts/CodeCheck.ps1
3942

40-
- template: /eng/common/templates/jobs/jobs.yml
41-
parameters:
42-
enableMicrobuild: true
43-
enablePublishBuildArtifacts: true
44-
enablePublishTestResults: true
45-
enablePublishBuildAssets: true
46-
enablePublishUsingPipelines: $(_PublishUsingPipelines)
47-
enableTelemetry: true
48-
helixRepo: aspnet/Extensions
49-
jobs:
50-
- job: Windows
51-
pool:
52-
${{ if eq(variables['System.TeamProject'], 'public') }}:
53-
name: NetCorePublic-Pool
54-
queue: BuildPool.Windows.10.Amd64.VS2017.Open
55-
${{ if ne(variables['System.TeamProject'], 'public') }}:
56-
name: NetCoreInternal-Pool
57-
queue: BuildPool.Windows.10.Amd64.VS2017
58-
variables:
59-
# Only enable publishing in official builds.
60-
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
61-
# DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
62-
# Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
63-
- group: DotNet-Blob-Feed
64-
- group: Publish-Build-Assets
65-
- name: _OfficialBuildArgs
66-
value: /p:DotNetSignType=$(_SignType)
67-
/p:TeamName=$(_TeamName)
68-
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
69-
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json
70-
/p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
71-
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
72-
/p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
73-
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
74-
# else
75-
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
76-
- name: _OfficialBuildArgs
77-
value: ''
78-
strategy:
79-
matrix:
80-
${{ if in(variables['Build.Reason'], 'PullRequest') }}:
81-
Debug:
82-
_BuildConfig: Debug
83-
_SignType: test
84-
_DotNetPublishToBlobFeed: false
85-
_BuildArgs:
43+
- template: /eng/common/templates/jobs/jobs.yml
44+
parameters:
45+
enableMicrobuild: true
46+
enablePublishBuildArtifacts: true
47+
enablePublishTestResults: true
48+
enablePublishBuildAssets: true
49+
enablePublishUsingPipelines: ${{ variables._PublishUsingPipelines }}
50+
enableTelemetry: true
51+
helixRepo: aspnet/Extensions
52+
jobs:
53+
- job: Windows
54+
pool:
55+
${{ if eq(variables['System.TeamProject'], 'public') }}:
56+
name: NetCorePublic-Pool
57+
queue: BuildPool.Windows.10.Amd64.VS2017.Open
58+
${{ if ne(variables['System.TeamProject'], 'public') }}:
59+
name: NetCoreInternal-Pool
60+
queue: BuildPool.Windows.10.Amd64.VS2017
61+
variables:
62+
# Only enable publishing in official builds.
63+
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
64+
# DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
65+
# Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
66+
- group: DotNet-Blob-Feed
67+
- group: Publish-Build-Assets
68+
- name: _OfficialBuildArgs
69+
value: /p:DotNetSignType=$(_SignType)
70+
/p:TeamName=$(_TeamName)
71+
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
72+
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/aspnet-extensions/index.json
73+
/p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
74+
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
75+
/p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
76+
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
77+
# else
78+
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
79+
- name: _OfficialBuildArgs
80+
value: ''
81+
strategy:
82+
matrix:
83+
${{ if in(variables['Build.Reason'], 'PullRequest') }}:
84+
Debug:
85+
_BuildConfig: Debug
86+
_SignType: test
87+
_DotNetPublishToBlobFeed: false
88+
_BuildArgs:
8689

87-
Release:
88-
_BuildConfig: Release
89-
# PRs or external builds are not signed.
90-
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
91-
_SignType: test
92-
_DotNetPublishToBlobFeed: false
93-
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
94-
_SignType: real
95-
_DotNetPublishToBlobFeed: true
96-
_BuildArgs: $(_OfficialBuildArgs)
97-
steps:
98-
- checkout: self
99-
clean: true
100-
- task: NuGetCommand@2
101-
displayName: 'Clear NuGet caches'
102-
condition: succeeded()
103-
inputs:
104-
command: custom
105-
arguments: 'locals all -clear'
106-
- script: eng\common\cibuild.cmd -configuration $(_BuildConfig) -prepareMachine $(_BuildArgs)
107-
displayName: Build and Publish
108-
- script: eng\scripts\ci-flaky-tests.cmd -configuration $(_BuildConfig)
109-
displayName: Run Flaky Tests
110-
continueOnError: true
111-
- powershell: eng\scripts\KillProcesses.ps1
112-
displayName: Kill processes
113-
condition: always()
114-
- task: PublishTestResults@2
115-
displayName: Publish Flaky Test Results
116-
inputs:
117-
testResultsFormat: 'xUnit'
118-
testResultsFiles: '*.xml'
119-
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
120-
continueOnError: true
121-
condition: always()
122-
- task: PublishBuildArtifacts@1
123-
displayName: Upload TestResults
124-
condition: always()
125-
continueOnError: true
126-
inputs:
127-
pathtoPublish: artifacts/TestResults/$(_BuildConfig)/
128-
artifactName: $(Agent.Os)_$(Agent.JobName) TestResults
129-
artifactType: Container
130-
parallel: true
131-
- task: PublishBuildArtifacts@1
132-
displayName: Upload package artifacts
133-
condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
134-
inputs:
135-
pathtoPublish: artifacts/packages/
136-
artifactName: artifacts
137-
artifactType: Container
138-
parallel: true
90+
Release:
91+
_BuildConfig: Release
92+
# PRs or external builds are not signed.
93+
${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
94+
_SignType: test
95+
_DotNetPublishToBlobFeed: false
96+
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
97+
_SignType: real
98+
_DotNetPublishToBlobFeed: true
99+
_BuildArgs: $(_OfficialBuildArgs)
100+
steps:
101+
- checkout: self
102+
clean: true
103+
- task: NuGetCommand@2
104+
displayName: 'Clear NuGet caches'
105+
condition: succeeded()
106+
inputs:
107+
command: custom
108+
arguments: 'locals all -clear'
109+
- script: eng\common\cibuild.cmd -configuration $(_BuildConfig) -prepareMachine $(_BuildArgs)
110+
displayName: Build and Publish
111+
- script: eng\scripts\ci-flaky-tests.cmd -configuration $(_BuildConfig)
112+
displayName: Run Flaky Tests
113+
continueOnError: true
114+
- powershell: eng\scripts\KillProcesses.ps1
115+
displayName: Kill processes
116+
condition: always()
117+
- task: PublishTestResults@2
118+
displayName: Publish Flaky Test Results
119+
inputs:
120+
testResultsFormat: 'xUnit'
121+
testResultsFiles: '*.xml'
122+
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
123+
continueOnError: true
124+
condition: always()
125+
- task: PublishBuildArtifacts@1
126+
displayName: Upload TestResults
127+
condition: always()
128+
continueOnError: true
129+
inputs:
130+
pathtoPublish: artifacts/TestResults/$(_BuildConfig)/
131+
artifactName: $(Agent.Os)_$(Agent.JobName) TestResults
132+
artifactType: Container
133+
parallel: true
134+
- task: PublishBuildArtifacts@1
135+
displayName: Upload package artifacts
136+
condition: and(succeeded(), eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release'))
137+
inputs:
138+
pathtoPublish: artifacts/packages/
139+
artifactName: artifacts
140+
artifactType: Container
141+
parallel: true
139142

140-
- job: Ubuntu_16_04
141-
displayName: 'Ubuntu 16.04'
142-
pool:
143-
vmImage: ubuntu-16.04
144-
variables:
145-
# Only enable publishing in official builds.
146-
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), notin(variables['Build.Reason'], 'PullRequest')) }}:
147-
- name: _OfficialBuildArgs
148-
value: -p:OfficialBuildId=$(Build.BuildNumber)
149-
# else
150-
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
151-
- name: _OfficialBuildArgs
152-
value: ''
153-
strategy:
154-
matrix:
155-
${{ if in(variables['Build.Reason'], 'PullRequest') }}:
156-
Debug:
157-
_BuildConfig: Debug
143+
- job: Ubuntu_16_04
144+
displayName: 'Ubuntu 16.04'
145+
pool:
146+
vmImage: ubuntu-16.04
147+
variables:
148+
# Only enable publishing in official builds.
149+
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), notin(variables['Build.Reason'], 'PullRequest')) }}:
150+
- name: _OfficialBuildArgs
151+
value: -p:OfficialBuildId=$(Build.BuildNumber)
152+
# else
153+
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
154+
- name: _OfficialBuildArgs
155+
value: ''
156+
strategy:
157+
matrix:
158+
${{ if in(variables['Build.Reason'], 'PullRequest') }}:
159+
Debug:
160+
_BuildConfig: Debug
161+
_SignType: none
162+
_DotNetPublishToBlobFeed : false
163+
Release:
164+
_BuildConfig: Release
158165
_SignType: none
159166
_DotNetPublishToBlobFeed : false
160-
Release:
161-
_BuildConfig: Release
162-
_SignType: none
163-
_DotNetPublishToBlobFeed : false
164-
steps:
165-
- checkout: self
166-
clean: true
167-
- task: NodeTool@0
168-
displayName: Install Node 10.x
169-
inputs:
170-
versionSpec: 10.x
171-
- script: eng/common/cibuild.sh
172-
--configuration $(_BuildConfig)
173-
--prepareMachine
174-
-p:BuildNodeJS=true
175-
$(_OfficialBuildArgs)
176-
displayName: Build
177-
- script: eng/scripts/ci-flaky-tests.sh --configuration $(_BuildConfig)
178-
displayName: Run Flaky Tests
179-
continueOnError: true
180-
- script: eng/scripts/KillProcesses.sh
181-
displayName: Kill processes
182-
condition: always()
183-
- task: PublishTestResults@2
184-
displayName: Publish Flaky Test Results
185-
inputs:
186-
testResultsFormat: 'xUnit'
187-
testResultsFiles: '*.xml'
188-
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
189-
continueOnError: true
190-
condition: always()
191-
- task: PublishBuildArtifacts@1
192-
displayName: Upload TestResults
193-
condition: always()
194-
continueOnError: true
195-
inputs:
196-
pathtoPublish: artifacts/TestResults/$(_BuildConfig)/
197-
artifactName: $(Agent.Os)_$(Agent.JobName) TestResults
198-
artifactType: Container
199-
parallel: true
200-
- task: PublishBuildArtifacts@1
201-
displayName: Upload NPM artifacts
202-
condition: and(succeeded(), eq(variables['_BuildConfig'], 'Release'))
203-
inputs:
204-
pathtoPublish: artifacts/npm/
205-
artifactName: NpmArtifacts
206-
artifactType: Container
207-
parallel: true
167+
steps:
168+
- checkout: self
169+
clean: true
170+
- task: NodeTool@0
171+
displayName: Install Node 10.x
172+
inputs:
173+
versionSpec: 10.x
174+
- script: eng/common/cibuild.sh
175+
--configuration $(_BuildConfig)
176+
--prepareMachine
177+
-p:BuildNodeJS=true
178+
$(_OfficialBuildArgs)
179+
displayName: Build
180+
- script: eng/scripts/ci-flaky-tests.sh --configuration $(_BuildConfig)
181+
displayName: Run Flaky Tests
182+
continueOnError: true
183+
- script: eng/scripts/KillProcesses.sh
184+
displayName: Kill processes
185+
condition: always()
186+
- task: PublishTestResults@2
187+
displayName: Publish Flaky Test Results
188+
inputs:
189+
testResultsFormat: 'xUnit'
190+
testResultsFiles: '*.xml'
191+
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
192+
continueOnError: true
193+
condition: always()
194+
- task: PublishBuildArtifacts@1
195+
displayName: Upload TestResults
196+
condition: always()
197+
continueOnError: true
198+
inputs:
199+
pathtoPublish: artifacts/TestResults/$(_BuildConfig)/
200+
artifactName: $(Agent.Os)_$(Agent.JobName) TestResults
201+
artifactType: Container
202+
parallel: true
203+
- task: PublishBuildArtifacts@1
204+
displayName: Upload NPM artifacts
205+
condition: and(succeeded(), eq(variables['_BuildConfig'], 'Release'))
206+
inputs:
207+
pathtoPublish: artifacts/npm/
208+
artifactName: NpmArtifacts
209+
artifactType: Container
210+
parallel: true
208211

209-
- job: OSX_10_13
210-
displayName: 'OSX'
211-
pool:
212-
vmImage: macOS-10.13
213-
strategy:
214-
matrix:
215-
${{ if in(variables['Build.Reason'], 'PullRequest') }}:
216-
Debug:
217-
_BuildConfig: Debug
212+
- job: OSX_10_13
213+
displayName: 'OSX'
214+
pool:
215+
vmImage: macOS-10.13
216+
strategy:
217+
matrix:
218+
${{ if in(variables['Build.Reason'], 'PullRequest') }}:
219+
Debug:
220+
_BuildConfig: Debug
221+
_SignType: none
222+
_DotNetPublishToBlobFeed : false
223+
Release:
224+
_BuildConfig: Release
218225
_SignType: none
219226
_DotNetPublishToBlobFeed : false
220-
Release:
221-
_BuildConfig: Release
222-
_SignType: none
223-
_DotNetPublishToBlobFeed : false
224-
steps:
225-
- checkout: self
226-
clean: true
227-
- script: eng/common/cibuild.sh
228-
--configuration $(_BuildConfig)
229-
--prepareMachine
230-
displayName: Build
231-
- script: eng/scripts/ci-flaky-tests.sh --configuration $(_BuildConfig)
232-
displayName: Run Flaky Tests
233-
continueOnError: true
234-
- script: eng/scripts/KillProcesses.sh
235-
displayName: Kill processes
236-
condition: always()
237-
- task: PublishTestResults@2
238-
displayName: Publish Flaky Test Results
239-
inputs:
240-
testResultsFormat: 'xUnit'
241-
testResultsFiles: '*.xml'
242-
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
243-
continueOnError: true
244-
condition: always()
245-
- task: PublishBuildArtifacts@1
246-
displayName: Upload TestResults
247-
condition: always()
248-
continueOnError: true
249-
inputs:
250-
pathtoPublish: artifacts/TestResults/$(_BuildConfig)/
251-
artifactName: $(Agent.Os)_$(Agent.JobName) TestResults
252-
artifactType: Container
253-
parallel: true
254-
- job: Source_Build
255-
displayName: 'Test: Linux Source Build'
256-
container: centos:7
257-
pool:
258-
vmImage: 'ubuntu-16.04'
259-
variables:
260-
DotNetCoreSdkDir: $(Agent.ToolsDirectory)/dotnet
261-
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: true
262-
steps:
263-
- script: |
264-
source eng/common/native/common-library.sh
265-
mkdir -p $HOME/bin
266-
GetFile https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 $HOME/bin/jq
267-
chmod +x $HOME/bin/jq
268-
echo "##vso[task.prependpath]$HOME/bin"
269-
displayName: Install jq
270-
- task: UseDotNet@2
271-
displayName: 'Use .NET Core sdk'
272-
inputs:
273-
packageType: sdk
274-
# The SDK version selected here is intentionally supposed to use the latest release
275-
# For the purpose of building Linux distros, we can't depend on features of the SDK
276-
# which may not exist in pre-built versions of the SDK
277-
version: 3.0.x
278-
installationPath: $(DotNetCoreSdkDir)
279-
includePreviewVersions: true
280-
- script: ./eng/scripts/ci-source-build.sh --ci --configuration Release
281-
displayName: Run ci-source-build.sh
282-
- task: PublishBuildArtifacts@1
283-
displayName: Upload logs
284-
continueOnError: true
285-
inputs:
286-
pathtoPublish: artifacts/log/
287-
artifactName: Source_Build_Logs
288-
artifactType: Container
289-
parallel: true
290-
- task: PublishBuildArtifacts@1
291-
displayName: Upload package artifacts
292-
# Only capture source build artifacts in PRs for the sake of inspecting
293-
# changes that impact source-build. The artifacts from this build pipeline are never actually used.
294-
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
295-
inputs:
296-
pathtoPublish: artifacts/packages/
297-
artifactName: Source_Build_Packages
298-
artifactType: Container
299-
parallel: true
227+
steps:
228+
- checkout: self
229+
clean: true
230+
- script: eng/common/cibuild.sh
231+
--configuration $(_BuildConfig)
232+
--prepareMachine
233+
displayName: Build
234+
- script: eng/scripts/ci-flaky-tests.sh --configuration $(_BuildConfig)
235+
displayName: Run Flaky Tests
236+
continueOnError: true
237+
- script: eng/scripts/KillProcesses.sh
238+
displayName: Kill processes
239+
condition: always()
240+
- task: PublishTestResults@2
241+
displayName: Publish Flaky Test Results
242+
inputs:
243+
testResultsFormat: 'xUnit'
244+
testResultsFiles: '*.xml'
245+
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Flaky'
246+
continueOnError: true
247+
condition: always()
248+
- task: PublishBuildArtifacts@1
249+
displayName: Upload TestResults
250+
condition: always()
251+
continueOnError: true
252+
inputs:
253+
pathtoPublish: artifacts/TestResults/$(_BuildConfig)/
254+
artifactName: $(Agent.Os)_$(Agent.JobName) TestResults
255+
artifactType: Container
256+
parallel: true
257+
- job: Source_Build
258+
displayName: 'Test: Linux Source Build'
259+
container: centos:7
260+
pool:
261+
vmImage: 'ubuntu-16.04'
262+
variables:
263+
DotNetCoreSdkDir: $(Agent.ToolsDirectory)/dotnet
264+
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: true
265+
steps:
266+
- script: |
267+
source eng/common/native/common-library.sh
268+
mkdir -p $HOME/bin
269+
GetFile https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 $HOME/bin/jq
270+
chmod +x $HOME/bin/jq
271+
echo "##vso[task.prependpath]$HOME/bin"
272+
displayName: Install jq
273+
- task: UseDotNet@2
274+
displayName: 'Use .NET Core sdk'
275+
inputs:
276+
packageType: sdk
277+
# The SDK version selected here is intentionally supposed to use the latest release
278+
# For the purpose of building Linux distros, we can't depend on features of the SDK
279+
# which may not exist in pre-built versions of the SDK
280+
version: 3.0.x
281+
installationPath: $(DotNetCoreSdkDir)
282+
includePreviewVersions: true
283+
- script: ./eng/scripts/ci-source-build.sh --ci --configuration Release
284+
displayName: Run ci-source-build.sh
285+
- task: PublishBuildArtifacts@1
286+
displayName: Upload logs
287+
continueOnError: true
288+
inputs:
289+
pathtoPublish: artifacts/log/
290+
artifactName: Source_Build_Logs
291+
artifactType: Container
292+
parallel: true
293+
- task: PublishBuildArtifacts@1
294+
displayName: Upload package artifacts
295+
# Only capture source build artifacts in PRs for the sake of inspecting
296+
# changes that impact source-build. The artifacts from this build pipeline are never actually used.
297+
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
298+
inputs:
299+
pathtoPublish: artifacts/packages/
300+
artifactName: Source_Build_Packages
301+
artifactType: Container
302+
parallel: true
303+
304+
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
305+
- template: eng\common\templates\post-build\post-build.yml
306+
parameters:
307+
# Symbol validation isn't being very reliable lately. This should be enabled back
308+
# once this issue is resolved: https://github.com/dotnet/arcade/issues/2871
309+
enableSymbolValidation: false

0 commit comments

Comments
 (0)
Please sign in to comment.