Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move all of our pipelines to use the global-build-job to build CoreCLR, Mono, and Libraries assets #99179

Merged
merged 84 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
657bb22
Remove unused testBuildPlatforms property and some official-build-onl…
jkoritzinsky Feb 22, 2024
ca1de74
Remove unused compilerArg parameter/variable (we don't use it now tha…
jkoritzinsky Feb 22, 2024
11b9929
Move riscv and freebsd build jobs to use the global-build-job templat…
jkoritzinsky Feb 22, 2024
39072d3
Refactor out some of the test variables into a variable template
jkoritzinsky Feb 23, 2024
d6c5357
Move over clrinterpreter.yml pipeline as example.
jkoritzinsky Feb 23, 2024
fcda8f6
Clean up some of the clrinterpreter changes.
jkoritzinsky Feb 23, 2024
aab46ee
Update runtime-cet pipeline as it's a simple one and easy to validate.
jkoritzinsky Feb 23, 2024
dfaa153
Use name/value consistently
jkoritzinsky Feb 23, 2024
3229aa6
Revert change in runtime pipeline (we'll move this pipeline last).
jkoritzinsky Feb 23, 2024
376aea3
Set variables in run-test-job directly
jkoritzinsky Feb 23, 2024
2a5feb6
Update job dependency
jkoritzinsky Feb 23, 2024
83e77cc
Avoid manually specifying dependencies with variables, AzDO doesn't a…
jkoritzinsky Feb 23, 2024
0beb97a
Add back test build
jkoritzinsky Feb 23, 2024
a49533f
Pass artifacts name as parameter, not variable
jkoritzinsky Feb 23, 2024
0049e9b
Fix indentation so our post-build steps actually run
jkoritzinsky Feb 23, 2024
bd2f6a6
Move priority arg to variable template and fix variable template usage
jkoritzinsky Feb 23, 2024
8657e90
Fix artifacts upload folder.
jkoritzinsky Feb 26, 2024
1a13131
Make sure both "non-uppercase build config" variable we use in the gl…
jkoritzinsky Feb 26, 2024
869c617
Merge branch 'pr-single-job' of github.com:dotnet/runtime into pr-sin…
jkoritzinsky Feb 26, 2024
532396f
Fix argument order
jkoritzinsky Feb 27, 2024
c9ca099
Remove extraneous space
jkoritzinsky Feb 27, 2024
9234db8
Convert various pipelines to use the global build design
jkoritzinsky Feb 27, 2024
137cfdf
Create new jit outerloop pipeline template and move remaining simple …
jkoritzinsky Feb 27, 2024
d2570a2
Convert the JIT exploratory pipeline to be based on the global build …
jkoritzinsky Feb 27, 2024
0e4a90d
Fix build config.
jkoritzinsky Feb 27, 2024
a980cac
Convert all usages of built-jit-job.yml to use the global build scrip…
jkoritzinsky Feb 27, 2024
cc647ae
Move runtime-extra-platforms-other.yml to exclusively global-build-jo…
jkoritzinsky Feb 28, 2024
f98d669
Convert crossgen2 outerloop job to use the global-build-job approach
jkoritzinsky Feb 28, 2024
d032532
Convert libraries stress pipelines to use the global build job templa…
jkoritzinsky Feb 28, 2024
a6729e4
Convert runtime-llvm and runtimelab pipelines to use the global-build…
jkoritzinsky Feb 28, 2024
b44a453
Convert superpmi-collect.yml to use global-build-job to build the pro…
jkoritzinsky Feb 28, 2024
2550485
Convert the perf jobs to use global build everywhere.
jkoritzinsky Feb 28, 2024
efafcc2
Fix archive file name
jkoritzinsky Feb 28, 2024
401ce99
move coreclr outerloop pipeline to use global-build-job
jkoritzinsky Feb 28, 2024
f3271b3
Update runtime pipeline to use the global build jobs
jkoritzinsky Feb 29, 2024
a62f944
Make artifact names consistent with how we format names throughout th…
jkoritzinsky Feb 29, 2024
019ddec
Remove now-unused YAML
jkoritzinsky Feb 29, 2024
469f47a
Remove invalid isExtraPlatformsBuild
jkoritzinsky Feb 29, 2024
68d1c63
Fix indentation
jkoritzinsky Feb 29, 2024
22dd1e0
Remove extraneous ability to specify additional variables in variable…
jkoritzinsky Feb 29, 2024
7e5db2e
Remove installer builds that are now built in a global build job (whi…
jkoritzinsky Feb 29, 2024
ccc8da7
Fix configuration match
jkoritzinsky Feb 29, 2024
dd015aa
Fix indentation so libraries tests actually run.
jkoritzinsky Feb 29, 2024
6229c01
Upload build assets as well as helix test assets.
jkoritzinsky Feb 29, 2024
f36f000
Fix some config settings
jkoritzinsky Feb 29, 2024
5427f92
Adjust configuration names again
jkoritzinsky Feb 29, 2024
082b5e7
Fix build command for the installer jobs on mac
jkoritzinsky Feb 29, 2024
2571c11
Fix config overrride for test artifacts
jkoritzinsky Mar 1, 2024
1c33a9c
Build the native test components that match the config we want to upl…
jkoritzinsky Mar 1, 2024
c9f3f67
Fix name suffix
jkoritzinsky Mar 1, 2024
f861a1c
Merge branch 'main' of github.com:dotnet/runtime into pr-single-job
jkoritzinsky Mar 1, 2024
6fb17fa
Fix test group and pass platforms everywhere necessary in jit-outerlo…
jkoritzinsky Mar 4, 2024
3264d2d
Add change in JIT subtree to validate JIT pipelines
jkoritzinsky Mar 4, 2024
d83e274
Fix win-x86 libraries test job config
jkoritzinsky Mar 4, 2024
ad00fc1
Fix path overrides for cross-config installer builds.
jkoritzinsky Mar 4, 2024
6d1c641
Fix config problem with Win-x64 minijit tests
jkoritzinsky Mar 4, 2024
483086e
Flip configuration override to ensure we see the right files.
jkoritzinsky Mar 4, 2024
7e00a38
Fix superpmi artifacts names.
jkoritzinsky Mar 4, 2024
9bd50b2
Disable PGO optimization on the superpmi and jit builds. Create .dotn…
jkoritzinsky Mar 8, 2024
dc2c260
Add nopgooptimize for one more job
jkoritzinsky Mar 8, 2024
f379635
Copy corerun to .dotnet-mono
jkoritzinsky Mar 8, 2024
f4b698b
Fix job template
jkoritzinsky Mar 8, 2024
be71b34
Fix template path
jkoritzinsky Mar 8, 2024
bfbe4fc
Use target instead of container
jkoritzinsky Mar 8, 2024
37c806e
Fix superpmi job dependencies
jkoritzinsky Mar 8, 2024
8839c53
Override build config
jkoritzinsky Mar 8, 2024
c3febe2
Use /p instead of -p
jkoritzinsky Mar 8, 2024
6918f84
Build libraries tests on all the platforms
jkoritzinsky Mar 9, 2024
22820db
Set ArchiveTests
jkoritzinsky Mar 11, 2024
2932033
More SuperPMI fixes
jkoritzinsky Mar 11, 2024
ec08b1a
Update JIT-EE GUID to regenerate collections
jkoritzinsky Mar 11, 2024
8b40e05
Resolve SuperPMI assets based on the unified artifacts layout (now th…
jkoritzinsky Mar 11, 2024
30eb6cc
Fix configuration, x64 tools lookup, refactor correlation payload int…
jkoritzinsky Mar 12, 2024
e4a12ed
Fix paths, conditions, item names
jkoritzinsky Mar 12, 2024
496adeb
Now that we're consistently using a venv, install the package in the …
jkoritzinsky Mar 12, 2024
e3dacf1
Merge branch 'main' into pr-single-job
jkoritzinsky Mar 13, 2024
879dcc8
We're passing the correct runtime type now. Update the condition for …
jkoritzinsky Mar 13, 2024
d93ce9e
Merge branch 'pr-single-job' of github.com:jkoritzinsky/runtime into …
jkoritzinsky Mar 13, 2024
0f336d3
Specify testGroup into our variable template when using xplat-pipelin…
jkoritzinsky Mar 13, 2024
b38ed63
Remove xplat-pipeline-job template and insert the "native test assets…
jkoritzinsky Mar 13, 2024
4ce33d5
Fix condition indentation
jkoritzinsky Mar 13, 2024
126839f
Fix xplat-job.yml path
jkoritzinsky Mar 13, 2024
994e7ce
Undo jit change
jkoritzinsky Mar 15, 2024
c360f31
Merge branch 'main' of github.com:dotnet/runtime into pr-single-job
jkoritzinsky Mar 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 0 additions & 53 deletions eng/pipelines/common/build-coreclr-and-libraries-job.yml

This file was deleted.

3 changes: 3 additions & 0 deletions eng/pipelines/common/global-build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ parameters:
preBuildSteps: []
enableRichCodeNavigation: false
richCodeNavigationLanguage: 'csharp'
disableComponentGovernance: false

jobs:
- template: /eng/common/templates/job/job.yml
Expand All @@ -55,6 +56,8 @@ jobs:
# Component governance does not work on musl machines
${{ if eq(parameters.osSubGroup, '_musl') }}:
disableComponentGovernance: true
${{ else }}:
disableComponentGovernance: ${{ parameters.disableComponentGovernance }}

workspace:
clean: all
Expand Down
3 changes: 0 additions & 3 deletions eng/pipelines/common/platform-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,6 @@ jobs:
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
crossBuild: true
disableClrTest: true
${{ insert }}: ${{ parameters.jobParameters }}

# Runtime-dev-innerloop build
Expand Down Expand Up @@ -463,7 +462,6 @@ jobs:
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
crossBuild: true
disableClrTest: true
${{ insert }}: ${{ parameters.jobParameters }}

# WASI WebAssembly
Expand Down Expand Up @@ -920,7 +918,6 @@ jobs:
buildConfig: ${{ parameters.buildConfig }}
helixQueueGroup: ${{ parameters.helixQueueGroup }}
crossBuild: true
disableClrTest: true
${{ insert }}: ${{ parameters.jobParameters }}

# Windows x64
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/common/templates/global-build-step.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ parameters:
shouldContinueOnError: false
archParameter: $(_archParameter)
displayName: Build product
container: ''

steps:
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci ${{ parameters.archParameter }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter)
displayName: ${{ parameters.displayName }}
${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}:
continueOnError: ${{ parameters.shouldContinueOnError }}
${{ if ne(parameters.container, '') }}:
target: ${{ parameters.container }}
19 changes: 8 additions & 11 deletions eng/pipelines/common/templates/runtimes/build-test-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,8 @@ parameters:
### Build managed test components (native components are getting built as part
### of the product build job).

### TODO: As of today, build of managed test components requires the product build
### as a prerequisite due to dependency on System.Private.Corelib. After switching
### over to its reference assembly we should be able to remove this dependency and
### run managed test builds in parallel with the product build job.


jobs:
- template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml
- template: /eng/pipelines/common/templates/runtimes/xplat-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }}
Expand All @@ -37,7 +31,6 @@ jobs:
testGroup: ${{ parameters.testGroup }}
pool: ${{ parameters.pool }}
dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
compilerArg: ''

# Test jobs should continue on error for internal builds
${{ if eq(variables['System.TeamProject'], 'internal') }}:
Expand Down Expand Up @@ -69,8 +62,6 @@ jobs:
- ${{ variable }}
- name: liveRuntimeBuildParams
value: 'libs+clr.iltools -c Release -ci'
- name: compilerArg
value: ''

- name: runtimeFlavorArgs
value: ''
Expand All @@ -91,6 +82,12 @@ jobs:
- name: testTreeFilterArg
value: 'tree GC/Scenarios/GCSimulator'

- template: /eng/pipelines/common/templates/runtimes/native-test-assets-variables.yml
parameters:
runtimeFlavor: coreclr
testGroup: ${{ parameters.testGroup }}
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}

steps:

# Install test build dependencies
Expand All @@ -99,7 +96,7 @@ jobs:
displayName: Install native dependencies

# Build core/libraries dependencies of test build
- script: $(Build.SourcesDirectory)/build$(scriptExt) $(liveRuntimeBuildParams) $(crossArg) $(compilerArg)
- script: $(Build.SourcesDirectory)/build$(scriptExt) $(liveRuntimeBuildParams) $(crossArg)
displayName: Build coreclr/libs components needed by test build

- ${{ if in(parameters.osGroup, 'osx', 'ios', 'tvos') }}:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Variables to resolve the paths and artifact names for the test assets used and produced to run the tests
# in the src/tests tree.
parameters:
runtimeFlavor: 'coreclr'
runtimeVariant: ''
liveLibrariesBuildConfig: ''
testGroup: 'innerloop'
configOverride: ''

variables:
- name: binTestsPath
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr'

# Build product defines what we are trying to build, either coreclr or mono
- name: buildProductRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/${{ parameters.runtimeFlavor }}/$(osGroup).$(archType).$(buildConfigUpper)'

- ${{ if ne(parameters.runtimeFlavor, 'mono') }}:
- name: managedGenericTestArtifactName
value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'
- ${{ else }}:
- name: managedGenericTestArtifactName
value: 'MonoManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'

- name: managedTestArtifactRootFolderPath
value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)'

- name: nativeTestArtifactConfig
value: $(_BuildConfig)

- ${{ if ne(parameters.configOverride, '') }}:
- name: nativeTestArtifactConfig
value: ${{ parameters.configOverride }}

- name: nativeTestArtifactName
value: 'CoreCLRNativeTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(nativeTestArtifactConfig)'

- name: nativeTestArtifactRootFolderPath
value: '$(binTestsPath)/obj/$(osGroup).$(archType).$(nativeTestArtifactConfig)'

- name: microsoftNetSdkIlFolderPath
value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il'

- name: microsoftNetSdkIlArtifactName
value: 'MicrosoftNetSdkIlPackage_AnyOS_AnyCPU_$(buildConfig)'

- name: librariesOverrideArg
value : ''

- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
- name: librariesOverrideArg
value : ' /p:LibrariesConfiguration=${{ parameters.liveLibrariesBuildConfig }}'

- name: priorityArg
value: ''

# 'innerloop' and 'clrinterpreter' jobs run the Priority 0 tests; everything else runs the Priority 1 tests.
# 'gc-standalone' is forced to run pri0 as well to start with.
- ${{ if and(ne(parameters.testGroup, 'innerloop'), ne(parameters.testGroup, 'clrinterpreter'), ne(parameters.testGroup, 'gc-standalone'), ne(parameters.testGroup, 'gc-standalone-server') ) }}:
- ${{ if ne(parameters.osGroup, 'windows') }}:
- name: priorityArg
value: 'priority1'
- ${{ if eq(parameters.osGroup, 'windows') }}:
- name: priorityArg
value: '-priority 1'
Loading
Loading