Skip to content

Commit c2848c5

Browse files
authored
Remove various single-scenario YAML parameters in our build scripts and shift implementation responsibility to those scenarios (#100115)
1 parent 8a82c6c commit c2848c5

7 files changed

+55
-171
lines changed

eng/pipelines/common/global-build-job.yml

+6-39
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,14 @@ parameters:
2525
useContinueOnErrorDuringBuild: false
2626
shouldContinueOnError: false
2727
isOfficialBuild: false
28-
isSourceBuild: false
29-
isNonPortableSourceBuild: false
3028
runtimeFlavor: 'coreclr'
3129
runtimeVariant: ''
3230
helixQueues: ''
3331
enablePublishTestResults: false
3432
testResultsFormat: ''
3533
postBuildSteps: []
3634
extraVariablesTemplates: []
37-
isManualCodeQLBuild: false
3835
preBuildSteps: []
39-
enableRichCodeNavigation: false
40-
richCodeNavigationLanguage: 'csharp'
41-
disableComponentGovernance: ''
4236
templatePath: 'templates'
4337

4438
jobs:
@@ -57,9 +51,6 @@ jobs:
5751
enablePublishTestResults: ${{ parameters.enablePublishTestResults }}
5852
testResultsFormat: ${{ parameters.testResultsFormat }}
5953

60-
enableRichCodeNavigation: ${{ parameters.enableRichCodeNavigation }}
61-
richCodeNavigationLanguage: ${{ parameters.richCodeNavigationLanguage }}
62-
6354
artifacts:
6455
publish:
6556
logs:
@@ -154,10 +145,7 @@ jobs:
154145

155146
- checkout: self
156147
clean: true
157-
# If running in source build mode, a git stash will be used for the inner clone. Avoid setting a fetch depth,
158-
# as a stash of a shallow cloned repo is not currently supported.
159-
${{ if ne(parameters.isSourceBuild, true) }}:
160-
fetchDepth: $(checkoutFetchDepth)
148+
fetchDepth: $(checkoutFetchDepth)
161149

162150
- ${{ if and(eq(parameters.isOfficialBuild, true), notin(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator')) }}:
163151
- template: /eng/pipelines/common/restore-internal-tools.yml
@@ -187,16 +175,6 @@ jobs:
187175
artifact: Mono_Offsets_${{monoCrossAOTTargetOS}}
188176
path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles'
189177

190-
- ${{ if eq(parameters.isSourceBuild, true) }}:
191-
- template: /eng/common/${{ parameters.templatePath }}/steps/source-build.yml
192-
parameters:
193-
platform:
194-
baseOS: ${{ parameters.baseOS }}
195-
buildScript: $(Build.SourcesDirectory)$(dir)build$(scriptExt)
196-
nonPortable: ${{ parameters.isNonPortableSourceBuild }}
197-
targetRID: ${{ parameters.targetRid }}
198-
name: ${{ parameters.platform }}
199-
200178
- ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}:
201179
- script: $(Build.SourcesDirectory)/eng/install-native-dependencies.sh ${{ parameters.osGroup }}
202180
displayName: Install Build Dependencies
@@ -228,7 +206,6 @@ jobs:
228206
targetRid: ${{ parameters.targetRid }}
229207
nameSuffix: ${{ parameters.nameSuffix }}
230208
platform: ${{ parameters.platform }}
231-
pgoType: ${{ parameters.pgoType }}
232209
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
233210
${{ if ne(preBuildStep.forwardedParameters, '') }}:
234211
${{ each parameter in preBuildStep.forwardedParameters }}:
@@ -239,21 +216,11 @@ jobs:
239216
- ${{ preBuildStep }}
240217

241218
# Build
242-
- ${{ if eq(parameters.isSourceBuild, false) }}:
243-
- ${{ if eq(parameters.isManualCodeQLBuild, true) }}:
244-
- task: CodeQL3000Init@0
245-
displayName: Initialize CodeQL (manually-injected)
246-
247-
- template: /eng/pipelines/common/templates/global-build-step.yml
248-
parameters:
249-
buildArgs: ${{ parameters.buildArgs }}
250-
useContinueOnErrorDuringBuild: ${{ parameters.useContinueOnErrorDuringBuild }}
251-
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
252-
253-
- ${{ if eq(parameters.isManualCodeQLBuild, true) }}:
254-
- task: CodeQL3000Finalize@0
255-
displayName: Finalize CodeQL (manually-injected)
256-
#endif isSourceBuild
219+
- template: /eng/pipelines/common/templates/global-build-step.yml
220+
parameters:
221+
buildArgs: ${{ parameters.buildArgs }}
222+
useContinueOnErrorDuringBuild: ${{ parameters.useContinueOnErrorDuringBuild }}
223+
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
257224

258225
- ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos', 'android') }}:
259226
- script: |

eng/pipelines/common/platform-matrix.yml

-67
Original file line numberDiff line numberDiff line change
@@ -294,73 +294,6 @@ jobs:
294294
helixQueueGroup: ${{ parameters.helixQueueGroup }}
295295
${{ insert }}: ${{ parameters.jobParameters }}
296296

297-
# Centos 8 Stream x64 Source Build
298-
299-
- ${{ if containsValue(parameters.platforms, 'SourceBuild_centos8_x64') }}:
300-
- template: xplat-setup.yml
301-
parameters:
302-
jobTemplate: ${{ parameters.jobTemplate }}
303-
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
304-
variables: ${{ parameters.variables }}
305-
osGroup: linux
306-
archType: x64
307-
targetRid: centos.8-x64
308-
platform: centos8_linux_x64
309-
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
310-
container: SourceBuild_centos_x64
311-
jobParameters:
312-
runtimeFlavor: ${{ parameters.runtimeFlavor }}
313-
buildConfig: ${{ parameters.buildConfig }}
314-
helixQueueGroup: ${{ parameters.helixQueueGroup }}
315-
isSourceBuild: true
316-
isNonPortableSourceBuild: true
317-
${{ insert }}: ${{ parameters.jobParameters }}
318-
319-
# Non-existent RID Source Build
320-
321-
- ${{ if containsValue(parameters.platforms, 'SourceBuild_banana24_x64') }}:
322-
- template: xplat-setup.yml
323-
parameters:
324-
jobTemplate: ${{ parameters.jobTemplate }}
325-
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
326-
variables: ${{ parameters.variables }}
327-
osGroup: linux
328-
archType: x64
329-
targetRid: banana.24-x64
330-
platform: banana24_linux_x64
331-
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
332-
container: SourceBuild_centos_x64 # Run the unknown-rid build on a platform with a known RID so our RID graph tooling can automatically add it to the RID graph.
333-
jobParameters:
334-
runtimeFlavor: ${{ parameters.runtimeFlavor }}
335-
baseOS: linux
336-
buildConfig: ${{ parameters.buildConfig }}
337-
helixQueueGroup: ${{ parameters.helixQueueGroup }}
338-
isSourceBuild: true
339-
isNonPortableSourceBuild: true
340-
${{ insert }}: ${{ parameters.jobParameters }}
341-
342-
# Portable Linux x64 Source Build
343-
344-
- ${{ if containsValue(parameters.platforms, 'SourceBuild_linux_x64') }}:
345-
- template: xplat-setup.yml
346-
parameters:
347-
jobTemplate: ${{ parameters.jobTemplate }}
348-
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
349-
variables: ${{ parameters.variables }}
350-
osGroup: linux
351-
archType: x64
352-
targetRid: linux-x64
353-
platform: linux_x64
354-
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
355-
container: SourceBuild_linux_x64
356-
jobParameters:
357-
runtimeFlavor: ${{ parameters.runtimeFlavor }}
358-
buildConfig: ${{ parameters.buildConfig }}
359-
helixQueueGroup: ${{ parameters.helixQueueGroup }}
360-
isSourceBuild: true
361-
isNonPortableSourceBuild: false
362-
${{ insert }}: ${{ parameters.jobParameters }}
363-
364297
# GCC Linux x64 Build
365298

366299
- ${{ if containsValue(parameters.platforms, 'gcc_linux_x64') }}:

eng/pipelines/global-build.yml

+5-10
Original file line numberDiff line numberDiff line change
@@ -163,16 +163,11 @@ extends:
163163
eq(variables['isRollingBuild'], true))
164164

165165
#
166-
# SourceBuild Build
166+
# Build Portable SourceBuild
167167
#
168-
- template: /eng/pipelines/common/platform-matrix.yml
168+
- template: /eng/common/templates/jobs/source-build.yml
169169
parameters:
170-
jobTemplate: /eng/pipelines/common/global-build-job.yml
171-
buildConfig: Release
172170
platforms:
173-
- SourceBuild_linux_x64
174-
jobParameters:
175-
nameSuffix: PortableSourceBuild
176-
timeoutInMinutes: 95
177-
condition:
178-
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_non_mono_and_wasm.containsChange'], true)
171+
- name: Linux_x64
172+
targetRid: linux-x64
173+
container: SourceBuild_linux_x64

eng/pipelines/runtime-codeql.yml

+12-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,12 @@ extends:
4747
nameSuffix: AllSubsets_CoreCLR
4848
isOfficialBuild: ${{ variables.isOfficialBuild }}
4949
timeoutInMinutes: 360
50-
isManualCodeQLBuild: true
50+
preBuildSteps:
51+
- task: CodeQL3000Init@0
52+
displayName: Initialize CodeQL (manually-injected)
53+
postBuildSteps:
54+
- task: CodeQL3000Finalize@0
55+
displayName: Finalize CodeQL (manually-injected)
5156

5257
#
5358
# Build Mono runtime packs
@@ -65,4 +70,9 @@ extends:
6570
nameSuffix: AllSubsets_Mono
6671
isOfficialBuild: ${{ variables.isOfficialBuild }}
6772
timeoutInMinutes: 360
68-
isManualCodeQLBuild: true
73+
preBuildSteps:
74+
- task: CodeQL3000Init@0
75+
displayName: Initialize CodeQL (manually-injected)
76+
postBuildSteps:
77+
- task: CodeQL3000Finalize@0
78+
displayName: Finalize CodeQL (manually-injected)

eng/pipelines/runtime-official.yml

+4-14
Original file line numberDiff line numberDiff line change
@@ -562,22 +562,12 @@ extends:
562562
#
563563
# Build SourceBuild packages
564564
#
565-
- template: /eng/pipelines/common/platform-matrix.yml
565+
- template: /eng/common/templates-official/jobs/source-build.yml
566566
parameters:
567-
jobTemplate: /eng/pipelines/common/global-build-job.yml
568-
buildConfig: Release
569-
helixQueueGroup: ci
570567
platforms:
571-
- SourceBuild_linux_x64
572-
jobParameters:
573-
templatePath: 'templates-official'
574-
nameSuffix: PortableSourceBuild
575-
isOfficialBuild: ${{ variables.isOfficialBuild }}
576-
postBuildSteps:
577-
- template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
578-
parameters:
579-
name: SourceBuildPackages
580-
timeoutInMinutes: 95
568+
- name: Linux_x64
569+
targetRid: linux-x64
570+
container: SourceBuild_linux_x64
581571

582572
#
583573
# Build PGO Instrumented CoreCLR Release

eng/pipelines/runtime.yml

+26-33
Original file line numberDiff line numberDiff line change
@@ -1878,36 +1878,29 @@ extends:
18781878
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true),
18791879
eq(variables['isRollingBuild'], true))
18801880
1881-
#
1882-
# Sourcebuild legs
1883-
# We have 3 important legs for source-build:
1884-
# - Centos.8 (ensures that known non-portable RID is working)
1885-
# - Linux-x64 portable (used for dependency flow and downstream PR verification)
1886-
# - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about.
1887-
#
1888-
# Running all of these everywhere is wasteful. Run Banana.24 and CentOS.8 in rolling CI,
1889-
# Run Linux-x64 in PR.
1890-
1891-
- template: /eng/pipelines/common/platform-matrix.yml
1892-
parameters:
1893-
jobTemplate: /eng/pipelines/common/global-build-job.yml
1894-
buildConfig: Release
1895-
helixQueueGroup: pr
1896-
platforms:
1897-
- SourceBuild_centos8_x64
1898-
jobParameters:
1899-
nameSuffix: centos8SourceBuild
1900-
timeoutInMinutes: 95
1901-
condition: eq(variables['isRollingBuild'], true)
1902-
1903-
- template: /eng/pipelines/common/platform-matrix.yml
1904-
parameters:
1905-
jobTemplate: /eng/pipelines/common/global-build-job.yml
1906-
buildConfig: Release
1907-
helixQueueGroup: pr
1908-
platforms:
1909-
- SourceBuild_banana24_x64
1910-
jobParameters:
1911-
nameSuffix: banana24SourceBuild
1912-
timeoutInMinutes: 95
1913-
condition: eq(variables['isRollingBuild'], true)
1881+
- stage: SourceBuild
1882+
displayName: Source Build Validation
1883+
dependsOn: []
1884+
condition: eq(variables['isRollingBuild'], true)
1885+
jobs:
1886+
#
1887+
# Sourcebuild legs
1888+
# We have 3 important legs for source-build:
1889+
# - Centos.8 (ensures that known non-portable RID is working)
1890+
# - Linux-x64 portable (used for dependency flow and downstream PR verification)
1891+
# - Banana.24 - Non-existent RID to ensure we don't break RIDs we don't know about.
1892+
#
1893+
# Running all of these everywhere is wasteful. Run Banana.24 and CentOS.8 in rolling CI,
1894+
# Run Linux-x64 in PR.
1895+
- template: /eng/common/templates/jobs/source-build.yml
1896+
parameters:
1897+
platforms:
1898+
- name: CentOS8
1899+
targetRid: centos.8-x64
1900+
nonPortable: true
1901+
container: SourceBuild_centos_x64
1902+
- name: NonexistentRID
1903+
baseOS: linux
1904+
targetRid: banana.24-x64
1905+
nonPortable: true
1906+
container: SourceBuild_centos_x64

src/installer/prepare-artifacts.proj

+2-6
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@
5858
<ManifestBuildData Include="AzureDevOpsBranch=$(BUILD_SOURCEBRANCH)" />
5959
</ItemGroup>
6060

61-
<!--
62-
Set metadata for assets that are not marked as NonShipping.
61+
<!--
62+
Set metadata for assets that are not marked as NonShipping.
6363
This is used to determine if the asset should be shipped as part of .NET release.
6464
-->
6565
<ItemDefinitionGroup>
@@ -145,10 +145,6 @@
145145
<RelativeBlobPath>$(InstallersRelativePath)workloads/%(Filename)%(Extension)</RelativeBlobPath>
146146
<PublishFlatContainer>true</PublishFlatContainer>
147147
</ItemsToPush>
148-
149-
<!-- Source build intermediated packages will be pushed and signed by the sourcebuild leg. -->
150-
<ItemsToPush Remove="@(ItemsToPush)" Condition="$([System.String]::new('%(Identity)').Contains('Microsoft.SourceBuild.Intermediate'))" />
151-
<ItemsToSignPostBuild Remove="@(ItemsToSignPostBuild)" Condition="$([System.String]::new('%(Identity)').Contains('Microsoft.SourceBuild.Intermediate'))" />
152148
</ItemGroup>
153149

154150
<!-- Push items to AzDO as build artifacts, generating the asset manifest as a side effect. -->

0 commit comments

Comments
 (0)