Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions eng/pipelines/register-build-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,18 @@ parameters:
performanceRepoAlias: self
buildType: []
mauiFramework: ''
# repoName is forwarded into each register-build-job invocation so the
# buildInfo.json marker lands under builds/{repoName}/buildArtifacts/...,
# matching the layout written by upload-build-artifacts-job.yml. Defaults
# to 'runtime' for back-compat with the existing dotnet/runtime perf-build
# pipeline; callers from other tenants (e.g. dotnet/aspnetcore) pass
# repoName explicitly.
repoName: 'runtime'

jobs:
- ${{ each type in parameters.buildType }}:
- template: /eng/pipelines/templates/register-build-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: ${{ type }}
buildId: $(Build.BuildId)
repoName: ${{ parameters.repoName }}
8 changes: 7 additions & 1 deletion eng/pipelines/templates/register-build-job.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
parameters:
buildType: ''
buildId: ''
# repoName is forwarded into the BCS blob path
# (builds/{repoName}/buildArtifacts/...). Defaults to 'runtime' for
# back-compat with the existing dotnet/runtime perf-build pipeline;
# callers from other tenants (e.g. dotnet/aspnetcore) pass repoName
# explicitly.
repoName: 'runtime'

jobs:
- job: RegisterBuild_${{ parameters.buildType }}
Expand All @@ -14,4 +20,4 @@ jobs:
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload --auth-mode login --account-name pvscmdupload --container-name '$web' --data '{"buildId":"${{ parameters.buildId }}"}' --name "builds/runtime/buildArtifacts/${{ variables['Build.SourceVersion'] }}/${{ parameters.buildType }}/buildInfo.json" --overwrite true
az storage blob upload --auth-mode login --account-name pvscmdupload --container-name '$web' --data '{"buildId":"${{ parameters.buildId }}"}' --name "builds/${{ parameters.repoName }}/buildArtifacts/${{ variables['Build.SourceVersion'] }}/${{ parameters.buildType }}/buildInfo.json" --overwrite true
10 changes: 8 additions & 2 deletions eng/pipelines/templates/upload-build-artifacts-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@ parameters:
buildType: ''
dependencyJobName: ''
artifacts: []
# repoName controls the {repoName} segment of the BCS blob path:
# builds/{repoName}/buildArtifacts/{sha}/{buildType}/{file}
# Defaults to 'runtime' for back-compat with the existing runtime perf-build pipeline.
# Callers building a different repo (e.g. dotnet/aspnetcore) pass repoName explicitly
# so that the upload lands at a tenant-specific path the indexer/crank then read.
repoName: 'runtime'

jobs:
- ${{ each artifact in parameters.artifacts }}:
Expand All @@ -14,7 +20,7 @@ jobs:
displayName: Download Build Artifact ${{ artifact.artifactName }}
artifact: ${{ artifact.artifactName }}
- ${{ each fileName in artifact.files }}:
- script: echo "pvscmdupload/\$web/builds/runtime/buildArtifacts/${{ variables['Build.SourceVersion'] }}/${{ parameters.buildType }}/${{ fileName }}"
- script: echo "pvscmdupload/\$web/builds/${{ parameters.repoName }}/buildArtifacts/${{ variables['Build.SourceVersion'] }}/${{ parameters.buildType }}/${{ fileName }}"
displayName: 'Artifact upload path'
- task: AzureCLI@2
displayName: 'Upload ${{ fileName }} file'
Expand All @@ -23,4 +29,4 @@ jobs:
scriptType: 'pscore'
scriptLocation: 'inlineScript'
inlineScript: |
az storage blob upload --auth-mode login --account-name pvscmdupload --container-name '$web' --file "$(Pipeline.Workspace)/${{ artifact.artifactName }}/${{ fileName }}" --name "builds/runtime/buildArtifacts/${{ variables['Build.SourceVersion'] }}/${{ parameters.buildType }}/${{ fileName }}" --overwrite true
az storage blob upload --auth-mode login --account-name pvscmdupload --container-name '$web' --file "$(Pipeline.Workspace)/${{ artifact.artifactName }}/${{ fileName }}" --name "builds/${{ parameters.repoName }}/buildArtifacts/${{ variables['Build.SourceVersion'] }}/${{ parameters.buildType }}/${{ fileName }}" --overwrite true
112 changes: 96 additions & 16 deletions eng/pipelines/upload-build-artifacts-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,141 +2,161 @@ parameters:
runtimeRepoAlias: runtime
performanceRepoAlias: self
buildType: []

# repoName is forwarded into the BCS blob path (builds/{repoName}/buildArtifacts/...)
# by each upload-build-artifacts-job.yml invocation. Defaults to 'runtime' for
# back-compat with the existing dotnet/runtime perf-build pipeline; callers from
# other tenants (e.g. dotnet/aspnetcore) pass repoName explicitly.
repoName: 'runtime'

jobs:
- ${{ if containsValue(parameters.buildType, 'coreclr_arm64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'coreclr_arm64_linux'
dependencyJobName: build_linux_arm64_release_coreclr
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_arm64_Release_coreclr'
files: [ 'BuildArtifacts_linux_arm64_Release_coreclr.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'coreclr_arm64_windows') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'coreclr_arm64_windows'
dependencyJobName: build_windows_arm64_release_coreclr
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_windows_arm64_Release_coreclr'
files: [ 'BuildArtifacts_windows_arm64_Release_coreclr.zip' ]

- ${{ if containsValue(parameters.buildType, 'coreclr_x64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'coreclr_x64_linux'
dependencyJobName: build_linux_x64_release_coreclr
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_x64_Release_coreclr'
files: [ 'BuildArtifacts_linux_x64_Release_coreclr.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'coreclr_x64_windows') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'coreclr_x64_windows'
dependencyJobName: build_windows_x64_release_coreclr
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_windows_x64_Release_coreclr'
files: [ 'BuildArtifacts_windows_x64_Release_coreclr.zip' ]

- ${{ if containsValue(parameters.buildType, 'coreclr_x86_windows') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'coreclr_x86_windows'
dependencyJobName: build_windows_x86_release_coreclr
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_windows_x86_Release_coreclr'
files: [ 'BuildArtifacts_windows_x86_Release_coreclr.zip' ]

- ${{ if containsValue(parameters.buildType, 'coreclr_arm64_android') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'coreclr_arm64_android'
dependencyJobName: build_android_arm64_release_AndroidCoreCLR
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'AndroidHelloWorldArm64CoreCLR'
files: [ 'AndroidHelloWorldArm64CoreCLR.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'wasm') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'wasm'
dependencyJobName: build_browser_wasm_linux_Release_wasm
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BrowserWasm'
files: [ 'BrowserWasm.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'monoAot_arm64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'monoAot_arm64_linux'
dependencyJobName: build_linux_arm64_release_AOT
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'LinuxMonoAOTarm64'
files: [ 'LinuxMonoAOTarm64.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'monoAot_x64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'monoAot_x64_linux'
dependencyJobName: build_linux_x64_release_AOT
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'LinuxMonoAOTx64'
files: [ 'LinuxMonoAOTx64.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'mono_x64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'mono_x64_linux'
dependencyJobName: build_linux_x64_release_mono
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_x64_Release_mono'
files: [ 'BuildArtifacts_linux_x64_Release_mono.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'mono_arm64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'mono_arm64_linux'
dependencyJobName: build_linux_arm64_release_mono
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_arm64_Release_mono'
files: [ 'BuildArtifacts_linux_arm64_Release_mono.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'mono_arm64_android') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'mono_arm64_android'
dependencyJobName: build_android_arm64_release_AndroidMono
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'AndroidHelloWorldArm64Mono'
files: [ 'AndroidHelloWorldArm64Mono.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'mono_arm64_ios') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'mono_arm64_ios'
dependencyJobName: build_ios_arm64_release_iOSMono
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'iOSSampleAppMonoFullAOTLLVMNoSymbols'
files: [ 'iOSSampleAppMonoFullAOTLLVMNoSymbols.zip' ]
- artifactName: 'iOSSampleAppMonoFullAOTNoLLVMNoSymbols'
files: [ 'iOSSampleAppMonoFullAOTNoLLVMNoSymbols.zip' ]

- ${{ if containsValue(parameters.buildType, 'monoBDN_arm64_android') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'monoBDN_arm64_android'
dependencyJobName: build_ios_arm64_release_PerfBDNApp #build_android_arm64_release_Mono_Packs
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'AndroidBDNApk'
files: [ 'AndroidBDNApk.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'nativeAot_arm64_ios') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'nativeAot_arm64_ios'
dependencyJobName: build_ios_arm64_release_iOSNativeAOT
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'iOSSampleAppNativeAOTNoSymbols'
files: [ 'iOSSampleAppNativeAOTNoSymbols.zip' ]
Expand All @@ -146,6 +166,7 @@ jobs:
parameters:
buildType: 'coreclr_arm64_ios'
dependencyJobName: build_ios_arm64_release_iOSCoreCLR
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'iOSSampleAppCoreCLRInterpreterNoSymbols'
files: [ 'iOSSampleAppCoreCLRInterpreterNoSymbols.zip' ]
Expand All @@ -157,6 +178,7 @@ jobs:
parameters:
buildType: 'wasm_coreclr'
dependencyJobName: build_browser_wasm_linux_Release_wasm_coreclr
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BrowserWasmCoreCLR'
files: [ 'BrowserWasmCoreCLR.tar.gz' ]
Expand All @@ -166,6 +188,64 @@ jobs:
parameters:
buildType: 'coreclr_r2r_interpreter'
dependencyJobName: build_linux_x64_release_coreclr_r2r_interpreter
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_x64_Release_coreclr_r2r_interpreter'
files: [ 'BuildArtifacts_linux_x64_Release_coreclr_r2r_interpreter.tar.gz' ]
files: [ 'BuildArtifacts_linux_x64_Release_coreclr_r2r_interpreter.tar.gz' ]

# ===========================================================================
# ASP.NET Core upload cases (consumed by dotnet/aspnetcore's perf-build
# pipeline). The dependencyJobName values mirror the jobName parameters used
# in dotnet/aspnetcore/.azure/pipelines/perf-build.yml. The artifactName
# values must match the artifact `name:` field published by those build jobs.
# ===========================================================================

- ${{ if containsValue(parameters.buildType, 'aspnetcore_x64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'aspnetcore_x64_linux'
dependencyJobName: Linux_x64_build
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_x64_Release_aspnetcore'
files: [ 'BuildArtifacts_linux_x64_Release_aspnetcore.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'aspnetcore_arm64_linux') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'aspnetcore_arm64_linux'
dependencyJobName: Linux_arm64_build
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_linux_arm64_Release_aspnetcore'
files: [ 'BuildArtifacts_linux_arm64_Release_aspnetcore.tar.gz' ]

- ${{ if containsValue(parameters.buildType, 'aspnetcore_x64_windows') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'aspnetcore_x64_windows'
dependencyJobName: Windows_build
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_windows_x64_Release_aspnetcore'
files: [ 'BuildArtifacts_windows_x64_Release_aspnetcore.zip' ]

- ${{ if containsValue(parameters.buildType, 'aspnetcore_arm64_windows') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'aspnetcore_arm64_windows'
dependencyJobName: Windows_build
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_windows_arm64_Release_aspnetcore'
files: [ 'BuildArtifacts_windows_arm64_Release_aspnetcore.zip' ]

- ${{ if containsValue(parameters.buildType, 'aspnetcore_x86_windows') }}:
- template: /eng/pipelines/templates/upload-build-artifacts-job.yml@${{ parameters.performanceRepoAlias }}
parameters:
buildType: 'aspnetcore_x86_windows'
dependencyJobName: Windows_build
repoName: ${{ parameters.repoName }}
artifacts:
- artifactName: 'BuildArtifacts_windows_x86_Release_aspnetcore'
files: [ 'BuildArtifacts_windows_x86_Release_aspnetcore.zip' ]