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
|
trigger:
batch: true
branches:
include:
- main
pr:
branches:
include:
- main
variables:
- name: officialBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}
- name: _BuildConfig
value: Release
- name: _BuildArgs
value:
- name: _DotNetArtifactsCategory
value: .NETCore
- ${{ if eq(variables.officialBuild, 'true') }}:
- name: _BuildArgs
value: ${{ format('{0} /p:OfficialBuildId=$(Build.BuildNumber) /p:Test=false /p:IntegrationTest=false', variables['_BuildArgs']) }}
# Provide HelixApiAccessToken for telemetry
- group: DotNet-HelixApi-Access
- name: Codeql.Enabled
value: True
- name: Codeql.TSAEnabled
value: True
stages:
- stage: build
displayName: Build
jobs:
- template: /eng/common/templates/jobs/jobs.yml
parameters:
enableTelemetry: true # send helix telemetry
enablePublishUsingPipelines: true
enablePublishBuildArtifacts: true # publish build logs to pipeline storage
${{ if eq(variables.officialBuild, 'false') }}:
enablePublishTestResults: true
testResultsFormat: vstest
enablePublishBuildAssets: true # generate build manifests and publish to BAR in internal builds
enableMicrobuild: true # only affects internal builds
enableSourceBuild: true
jobs:
- job: Windows_NT
pool:
${{ if eq(variables.officialBuild, 'false') }}:
vmImage: windows-latest
${{ if eq(variables.officialBuild, 'true') }}:
name: NetCore1ESPool-Internal
demands: ImageOverride -equals 1es-windows-2019
variables:
- ${{ if eq(variables.officialBuild, 'false') }}:
- _SignType: test
- _PublishArgs: ''
- ${{ if eq(variables.officialBuild, 'true') }}:
- group: DotNet-Blob-Feed
- _TeamName: .NET # required by microbuild install step
- _SignType: real # used in the arcade templates that install microbuild.
- _DotNetPublishToBlobFeed: true # used by arcade templates that gather build asset manifests
- _PublishArgs: /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
/p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
/p:DotNetPublishUsingPipelines=true
- DotNetSignType: ${{ format('{0}', variables._SignType) }} # DotNetSignType defaults to real if not specified
steps:
- checkout: self
submodules: false
- script: eng\common\cibuild.cmd -projects $(Build.SourcesDirectory)\Mono.Cecil.sln
-configuration $(_BuildConfig) $(_BuildArgs) $(_PublishArgs)
-integrationTest
-nodeReuse "$false" # https://github.com/Microsoft/vstest/issues/1503
env:
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
${{ if eq(variables.officialBuild, 'false') }}:
displayName: Build Mono.Cecil.sln $(_BuildConfig)
${{ if eq(variables.officialBuild, 'true') }}:
displayName: Build and publish Mono.Cecil.sln $(_BuildConfig)
- ${{ if eq(variables.officialBuild, 'false') }}:
- job: Linux
condition: eq(variables.officialBuild, 'false')
pool:
vmImage: ubuntu-latest
steps:
- checkout: self
submodules: false
- script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/Mono.Cecil.sln
--configuration $(_BuildConfig) $(_BuildArgs)
--integrationTest
--nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
env:
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
displayName: Build Mono.Cecil.sln $(_BuildConfig)
- ${{ if eq(variables.officialBuild, 'false') }}:
- job: macOS
pool:
vmImage: macOS-latest
steps:
- checkout: self
submodules: false
- script: eng/common/cibuild.sh --projects $(Build.SourcesDirectory)/Mono.Cecil.sln
--configuration $(_BuildConfig) $(_BuildArgs)
--integrationTest
--nodeReuse false # https://github.com/Microsoft/vstest/issues/1503
env:
# https://github.com/Microsoft/vstest/issues/1503#issuecomment-410732193
MSBUILDENSURESTDOUTFORTASKPROCESSES: 1
displayName: Build Mono.Cecil.sln $(_BuildConfig)
# Post-Build Arcade logic
- ${{ if eq(variables.officialBuild, 'true') }}:
- template: /eng/common/templates/post-build/post-build.yml
parameters:
publishingInfraVersion: 3
|