diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml
index 1812fc318bb2e..8273417557052 100644
--- a/eng/pipelines/common/global-build-job.yml
+++ b/eng/pipelines/common/global-build-job.yml
@@ -34,6 +34,7 @@ parameters:
extraVariablesTemplates: []
preBuildSteps: []
templatePath: 'templates'
+ templateContext: ''
jobs:
- template: /eng/common/${{ parameters.templatePath }}/job/job.yml
@@ -51,6 +52,9 @@ jobs:
enablePublishTestResults: ${{ parameters.enablePublishTestResults }}
testResultsFormat: ${{ parameters.testResultsFormat }}
+ ${{ if ne(parameters.templateContext, '') }}:
+ templateContext: ${{ parameters.templateContext }}
+
artifacts:
publish:
logs:
diff --git a/eng/pipelines/common/templates/publish-pipeline-artifacts.yml b/eng/pipelines/common/templates/publish-pipeline-artifacts.yml
deleted file mode 100644
index 81f292ec5528c..0000000000000
--- a/eng/pipelines/common/templates/publish-pipeline-artifacts.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-parameters:
-- name: displayName
- type: string
-- name: inputs
- type: object
-- name: isOfficialBuild
- type: boolean
-
-steps:
- - ${{ if parameters.isOfficialBuild }}:
- - task: 1ES.PublishPipelineArtifact@1
- displayName: ${{ parameters.displayName }}
- inputs: ${{ parameters.inputs }}
- - ${{ else }}:
- - task: PublishPipelineArtifact@1
- displayName: ${{ parameters.displayName }}
- inputs: ${{ parameters.inputs }}
\ No newline at end of file
diff --git a/eng/pipelines/mono/templates/generate-offsets.yml b/eng/pipelines/mono/templates/generate-offsets.yml
deleted file mode 100644
index 8d8d781dd3262..0000000000000
--- a/eng/pipelines/mono/templates/generate-offsets.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-parameters:
- buildConfig: 'Debug'
- osGroup: ''
- osSubGroup: ''
- platform: ''
- container: ''
- timeoutInMinutes: ''
- variables: {}
- pool: ''
- condition: true
- isOfficialBuild: false
- templatePath: 'templates'
-
-### Product build
-jobs:
-- template: /eng/pipelines/common/templates/runtimes/xplat-job.yml
- parameters:
- templatePath: ${{ parameters.templatePath }}
- buildConfig: ${{ parameters.buildConfig }}
- osGroup: ${{ parameters.osGroup }}
- osSubGroup: ${{ parameters.osSubGroup }}
- helixType: 'build/product/'
- enableMicrobuild: true
- pool: ${{ parameters.pool }}
- condition: ${{ parameters.condition }}
- dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
- logsName: 'BuildLogs_Attempt$(System.JobAttempt)_Mono_Offsets_$(osGroup)$(osSubGroup)'
-
- # Compute job name from template parameters
- name: ${{ format('mono_{0}{1}_offsets', parameters.osGroup, parameters.osSubGroup) }}
- displayName: ${{ format('Mono {0}{1} AOT offsets', parameters.osGroup, parameters.osSubGroup) }}
-
- # Run all steps in the container.
- # Note that the containers are defined in platform-matrix.yml
- container: ${{ parameters.container }}
-
- timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
-
- gatherAssetManifests: true
- variables:
- - name: osGroup
- value: ${{ parameters.osGroup }}
- - name: osSubGroup
- value: ${{ parameters.osSubGroup }}
- - name: officialBuildIdArg
- value: ''
- - ${{ if eq(parameters.isOfficialBuild, true) }}:
- - name: officialBuildIdArg
- value: '/p:OfficialBuildId=$(Build.BuildNumber)'
- - name: osOverride
- value: -os linux
- - name: archType
- value: x64
- - ${{ parameters.variables }}
-
- steps:
-
- # Install native dependencies
- # Linux builds use docker images with dependencies preinstalled,
- # and FreeBSD builds use a build agent with dependencies
- # preinstalled, so we only need this step for OSX and Windows.
- - ${{ if in(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator') }}:
- - script: $(Build.SourcesDirectory)/eng/install-native-dependencies.sh $(osGroup)
- displayName: Install native dependencies
-
- # Build
- - ${{ if ne(parameters.osGroup, 'windows') }}:
- - script: ./build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOSGroups=$(osGroup)
- displayName: Generate AOT offsets
- - ${{ if eq(parameters.osGroup, 'windows') }}:
- - script: build$(scriptExt) -subset mono.aotcross -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) /p:MonoGenerateOffsetsOSGroups=$(osGroup)
- displayName: Generate AOT offsets
-
- # Upload offset files
- - task: CopyFiles@2
- displayName: Collect offset files
- inputs:
- sourceFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/'
- contents: '**/offsets-*.h'
- targetFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles/'
-
- - template: /eng/pipelines/common/templates/publish-pipeline-artifacts.yml
- parameters:
- displayName: Upload offset files
- isOfficialBuild: ${{ parameters.isOfficialBuild }}
- inputs:
- targetPath: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles'
- artifactName: 'Mono_Offsets_$(osGroup)$(osSubGroup)'
diff --git a/eng/pipelines/mono/templates/workloads-build.yml b/eng/pipelines/mono/templates/workloads-build.yml
deleted file mode 100644
index 89404db6b2920..0000000000000
--- a/eng/pipelines/mono/templates/workloads-build.yml
+++ /dev/null
@@ -1,117 +0,0 @@
-parameters:
- archType: ''
- buildConfig: ''
- container: ''
- dependsOn: []
- isOfficialBuild: false
- osGroup: ''
- osSubgroup: ''
- platform: ''
- pool: ''
- runtimeVariant: ''
- testGroup: ''
- timeoutInMinutes: ''
- templatePath: 'templates'
- variables: {}
-
-jobs:
-- template: /eng/pipelines/common/templates/runtimes/xplat-job.yml
- parameters:
- templatePath: ${{ parameters.templatePath }}
- archType: ${{ parameters.archType }}
- buildConfig: ${{ parameters.buildConfig }}
- container: ${{ parameters.container }}
- condition: and(succeeded(), ${{ parameters.isOfficialBuild }})
- helixType: 'build/product/'
- osGroup: ${{ parameters.osGroup }}
- osSubgroup: ${{ parameters.osSubgroup }}
- pool: ${{ parameters.pool }}
- runtimeVariant: ${{ parameters.runtimeVariant }}
- timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
- logsName: WorkloadLogs_Attempt$(System.JobAttempt)
-
- dependsOn: ${{ parameters.dependsOn }}
-
- name: workloadsbuild
- displayName: Build Workloads
-
- variables:
- - name: officialBuildIdArg
- value: ''
- - ${{ if eq(parameters.isOfficialBuild, true) }}:
- - name: officialBuildIdArg
- value: '/p:OfficialBuildId=$(Build.BuildNumber)'
- - name: SignType
- value: $[ coalesce(variables.OfficialSignType, 'real') ]
- - name: workloadPackagesPath
- value: $(Build.SourcesDirectory)/artifacts/workloadPackages
- - name: workloadArtifactsPath
- value: $(Build.SourcesDirectory)/artifacts/workloads
- - ${{ parameters.variables }}
-
- steps:
- - task: DownloadPipelineArtifact@2
- inputs:
- artifact: 'IntermediateArtifacts'
- path: $(workloadPackagesPath)
- patterns: |
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.browser-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.tvos-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.tvossimulator-*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.wasi-wasm*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.MonoTargets.Sdk*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.MonoAOTCompiler.Task*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Sdk*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Wasi*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Templates*.nupkg
- IntermediateArtifacts/windows_arm64/Shipping/Microsoft.NETCore.App.Runtime.win-arm64*.nupkg
- IntermediateArtifacts/windows_x64/Shipping/Microsoft.NETCore.App.Runtime.win-x64*.nupkg
- IntermediateArtifacts/windows_x86/Shipping/Microsoft.NETCore.App.Runtime.win-x86*.nupkg
- IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Sdk.WebAssembly.Pack*.nupkg
-
- - task: CopyFiles@2
- displayName: Flatten packages
- inputs:
- sourceFolder: $(workloadPackagesPath)
- contents: '*/Shipping/*.nupkg'
- cleanTargetFolder: false
- targetFolder: $(workloadPackagesPath)
- flattenFolders: true
-
- - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -subset mono.workloads -arch $(archType) -c $(buildConfig) $(officialBuildIdArg) -ci
- displayName: Build workload artifacts
-
- # Upload packages wrapping msis
- - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- parameters:
- name: workloads
-
- # Delete wixpdb files before they are uploaded to artifacts
- - task: DeleteFiles@1
- displayName: Delete wixpdb's
- inputs:
- SourceFolder: $(workloadArtifactsPath)
- Contents: '*.wixpdb'
-
- # Upload artifacts to be used for generating VS components
- - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
- parameters:
- name: workloads-vs
- publishPackagesCondition: false
- publishVSSetupCondition: true
diff --git a/eng/pipelines/official/jobs/prepare-signed-artifacts.yml b/eng/pipelines/official/jobs/prepare-signed-artifacts.yml
index 24fd2df48d74b..f52d685e964ef 100644
--- a/eng/pipelines/official/jobs/prepare-signed-artifacts.yml
+++ b/eng/pipelines/official/jobs/prepare-signed-artifacts.yml
@@ -1,76 +1,65 @@
parameters:
- dependsOn: []
PublishRidAgnosticPackagesFromPlatform: ''
isOfficialBuild: false
logArtifactName: 'Logs-PrepareSignedArtifacts_Attempt$(System.JobAttempt)'
jobs:
-- job: PrepareSignedArtifacts
- displayName: Prepare Signed Artifacts
- dependsOn: ${{ parameters.dependsOn }}
- pool:
- name: $(DncEngInternalBuildPool)
- demands: ImageOverride -equals 1es-windows-2022
- # Double the default timeout.
- timeoutInMinutes: 240
- workspace:
- clean: all
+- template: /eng/common/templates-official/job/job.yml
+ parameters:
+ name: 'PrepareSignedArtifacts'
+ displayName: 'Prepare Signed Artifacts'
- variables:
- - name: SignType
- value: $[ coalesce(variables.OfficialSignType, 'real') ]
+ pool:
+ name: $(DncEngInternalBuildPool)
+ demands: ImageOverride -equals 1es-windows-2022
- templateContext:
- outputs:
- - output: pipelineArtifact
- displayName: 'Publish BuildLogs'
- condition: succeededOrFailed()
- targetPath: '$(Build.StagingDirectory)\BuildLogs'
- artifactName: ${{ parameters.logArtifactName }}
+ # Double the default timeout.
+ timeoutInMinutes: 240
- steps:
- - checkout: self
- clean: true
- fetchDepth: 20
+ workspace:
+ clean: all
- - ${{ if eq(parameters.isOfficialBuild, true) }}:
- - task: NuGetAuthenticate@1
+ enableMicrobuild: true
- - task: MicroBuildSigningPlugin@2
- displayName: Install MicroBuild plugin for Signing
- inputs:
- signType: $(SignType)
- zipSources: false
- feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
- continueOnError: false
- condition: and(succeeded(),
- in(variables['SignType'], 'real', 'test'))
-
- - task: DownloadBuildArtifacts@0
- displayName: Download IntermediateArtifacts
- inputs:
- artifactName: IntermediateArtifacts
- downloadPath: $(Build.SourcesDirectory)\artifacts\PackageDownload
- checkDownloadedFiles: true
-
- - script: >-
- build.cmd -ci
- -subset publish
- -configuration Release
- /p:PublishRidAgnosticPackagesFromPlatform=${{ parameters.PublishRidAgnosticPackagesFromPlatform }}
- /p:OfficialBuildId=$(Build.BuildNumber)
- /p:SignType=$(SignType)
- /p:DotNetSignType=$(SignType)
- /bl:$(Build.SourcesDirectory)\prepare-artifacts.binlog
- displayName: Prepare artifacts and upload to build
-
- - task: CopyFiles@2
- displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
- inputs:
- SourceFolder: '$(Build.SourcesDirectory)'
- Contents: |
- **/*.log
- **/*.binlog
- TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
- continueOnError: true
- condition: succeededOrFailed()
\ No newline at end of file
+ variables:
+ - name: '_SignType'
+ value: $[ coalesce(variables.OfficialSignType, 'real') ]
+
+ templateContext:
+ inputs:
+ - input: checkout
+ repository: self
+ clean: true
+ fetchDepth: 20
+ - input: pipelineArtifact
+ artifactName: IntermediateArtifacts
+ targetPath: $(Build.SourcesDirectory)\artifacts\PackageDownload
+ outputs:
+ - output: pipelineArtifact
+ displayName: 'Publish BuildLogs'
+ condition: succeededOrFailed()
+ targetPath: '$(Build.StagingDirectory)\BuildLogs'
+ artifactName: ${{ parameters.logArtifactName }}
+
+ steps:
+ - script: >-
+ build.cmd -ci
+ -subset publish
+ -configuration Release
+ /p:PublishRidAgnosticPackagesFromPlatform=${{ parameters.PublishRidAgnosticPackagesFromPlatform }}
+ /p:OfficialBuildId=$(Build.BuildNumber)
+ /p:SignType=$(_SignType)
+ /p:DotNetSignType=$(_SignType)
+ /bl:$(Build.SourcesDirectory)\prepare-artifacts.binlog
+ displayName: Prepare artifacts and upload to build
+
+ - task: CopyFiles@2
+ displayName: Copy Files to $(Build.StagingDirectory)\BuildLogs
+ inputs:
+ SourceFolder: '$(Build.SourcesDirectory)'
+ Contents: |
+ **/*.log
+ **/*.binlog
+ TargetFolder: '$(Build.StagingDirectory)\BuildLogs'
+ continueOnError: true
+ condition: succeededOrFailed()
\ No newline at end of file
diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml
index 23f19405abea7..cf856d94df616 100644
--- a/eng/pipelines/runtime-official.yml
+++ b/eng/pipelines/runtime-official.yml
@@ -381,11 +381,12 @@ extends:
parameters:
name: MonoRuntimePacks
+
# Build Mono AOT offset headers once, for consumption elsewhere
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
platforms:
- android_x64
@@ -394,9 +395,31 @@ extends:
- tvos_arm64
- ios_arm64
- maccatalyst_x64
+ variables:
+ - name: _osParameter
+ value: -os linux
+ - name: _archParameter
+ value: -arch x64
jobParameters:
templatePath: 'templates-official'
- isOfficialBuild: ${{ variables.isOfficialBuild }}
+ nameSuffix: MonoAOTOffsets
+ buildArgs: -s mono.aotcross -c $(_BuildConfig) /p:MonoGenerateOffsetsOSGroups=$(osGroup)
+ postBuildSteps:
+ # Upload offset files
+ - task: CopyFiles@2
+ displayName: Collect offset files
+ inputs:
+ sourceFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/'
+ contents: '**/offsets-*.h'
+ targetFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles/'
+
+ templateContext:
+ outputs:
+ - output: pipelineArtifact
+ displayName: 'Publish Mono AOT offsets'
+ condition: succeeded()
+ targetPath: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles'
+ artifactName: 'Mono_Offsets_$(osGroup)$(osSubGroup)'
#
# Build Mono release AOT cross-compilers
@@ -418,9 +441,9 @@ extends:
nameSuffix: CrossAOT_Mono
runtimeVariant: crossaot
dependsOn:
- - mono_android_offsets
- - mono_browser_offsets
- - mono_wasi_offsets
+ - build_android_x64_release_MonoAOTOffsets
+ - build_browser_wasm_linux_release_MonoAOTOffsets
+ - build_wasi_wasm_linux_release_MonoAOTOffsets
monoCrossAOTTargetOS:
- android
- browser
@@ -446,9 +469,9 @@ extends:
nameSuffix: CrossAOT_Mono
runtimeVariant: crossaot
dependsOn:
- - mono_android_offsets
- - mono_browser_offsets
- - mono_wasi_offsets
+ - build_android_x64_release_MonoAOTOffsets
+ - build_browser_wasm_linux_release_MonoAOTOffsets
+ - build_wasi_wasm_linux_release_MonoAOTOffsets
monoCrossAOTTargetOS:
- android
- browser
@@ -474,12 +497,12 @@ extends:
nameSuffix: CrossAOT_Mono
runtimeVariant: crossaot
dependsOn:
- - mono_android_offsets
- - mono_browser_offsets
- - mono_wasi_offsets
- - mono_tvos_offsets
- - mono_ios_offsets
- - mono_maccatalyst_offsets
+ - build_android_x64_release_MonoAOTOffsets
+ - build_browser_wasm_linux_release_MonoAOTOffsets
+ - build_wasi_wasm_linux_release_MonoAOTOffsets
+ - build_tvos_arm64_release_MonoAOTOffsets
+ - build_ios_arm64_release_MonoAOTOffsets
+ - build_maccatalyst_x64_release_MonoAOTOffsets
monoCrossAOTTargetOS:
- android
- browser
@@ -599,12 +622,80 @@ extends:
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/mono/templates/workloads-build.yml
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
platforms:
- windows_x64
jobParameters:
templatePath: 'templates-official'
+ nameSuffix: Workloads
+ preBuildSteps:
+ - task: DownloadPipelineArtifact@2
+ inputs:
+ artifact: 'IntermediateArtifacts'
+ path: $(Build.SourcesDirectory)/artifacts/workloadPackages
+ patterns: |
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.browser-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.tvos-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.tvossimulator-*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NETCore.App.Runtime.Mono.wasi-wasm*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.MonoTargets.Sdk*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.MonoAOTCompiler.Task*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Sdk*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Wasi*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Runtime.WebAssembly.Templates*.nupkg
+ IntermediateArtifacts/windows_arm64/Shipping/Microsoft.NETCore.App.Runtime.win-arm64*.nupkg
+ IntermediateArtifacts/windows_x64/Shipping/Microsoft.NETCore.App.Runtime.win-x64*.nupkg
+ IntermediateArtifacts/windows_x86/Shipping/Microsoft.NETCore.App.Runtime.win-x86*.nupkg
+ IntermediateArtifacts/MonoRuntimePacks/Shipping/Microsoft.NET.Sdk.WebAssembly.Pack*.nupkg
+
+ - task: CopyFiles@2
+ displayName: Flatten packages
+ inputs:
+ sourceFolder: $(Build.SourcesDirectory)/artifacts/workloadPackages
+ contents: '*/Shipping/*.nupkg'
+ cleanTargetFolder: false
+ targetFolder: $(Build.SourcesDirectory)/artifacts/workloadPackages
+ flattenFolders: true
+
+ buildArgs: -s mono.workloads -c $(_BuildConfig) /p:PackageSource=$(Build.SourcesDirectory)/artifacts/workloadPackages /p:WorkloadOutputPath=$(Build.SourcesDirectory)/artifacts/workloads
+
+ postBuildSteps:
+ # Upload packages wrapping msis
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: workloads
+
+ # Delete wixpdb files before they are uploaded to artifacts
+ - task: DeleteFiles@1
+ displayName: Delete wixpdb's
+ inputs:
+ SourceFolder: $(Build.SourcesDirectory)/artifacts/workloads
+ Contents: '*.wixpdb'
+
+ # Upload artifacts to be used for generating VS components
+ - template: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
+ parameters:
+ name: workloads-vs
+ publishPackagesCondition: false
+ publishVSSetupCondition: always()
+
isOfficialBuild: ${{ variables.isOfficialBuild }}
timeoutInMinutes: 120
dependsOn:
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index ace914f9ecf60..d7a0a87668063 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -753,8 +753,7 @@ extends:
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
- jobTemplate: /eng/pipelines/mono/templates/generate-offsets.yml
- templatePath: 'templates'
+ jobTemplate: /eng/pipelines/common/global-build-job.yml
buildConfig: release
platforms:
- android_x64
@@ -763,8 +762,26 @@ extends:
- tvos_arm64
- ios_arm64
- maccatalyst_x64
+ variables:
+ - name: _osParameter
+ value: -os linux
+ - name: _archParameter
+ value: -arch x64
jobParameters:
- isOfficialBuild: false
+ nameSuffix: MonoAOTOffsets
+ buildArgs: -s mono.aotcross -c $(_BuildConfig) /p:MonoGenerateOffsetsOSGroups=$(osGroup)
+ postBuildSteps:
+ # Upload offset files
+ - task: CopyFiles@2
+ displayName: Collect offset files
+ inputs:
+ sourceFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/'
+ contents: '**/offsets-*.h'
+ targetFolder: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles/'
+
+ - publish: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles'
+ artifact: Mono_Offsets_$(osGroup)$(osSubGroup)
+ displayName: Upload offset files
# needed by crossaot
condition: >-
or(
@@ -1245,9 +1262,9 @@ extends:
nameSuffix: CrossAOT_Mono
runtimeVariant: crossaot
dependsOn:
- - mono_android_offsets
- - mono_browser_offsets
- - mono_wasi_offsets
+ - build_android_x64_release_MonoAOTOffsets
+ - build_browser_wasm_linux_release_MonoAOTOffsets
+ - build_wasi_wasm_linux_release_MonoAOTOffsets
monoCrossAOTTargetOS:
- android
- browser
@@ -1272,9 +1289,9 @@ extends:
nameSuffix: CrossAOT_Mono
runtimeVariant: crossaot
dependsOn:
- - mono_android_offsets
- - mono_browser_offsets
- - mono_wasi_offsets
+ - build_android_x64_release_MonoAOTOffsets
+ - build_browser_wasm_linux_release_MonoAOTOffsets
+ - build_wasi_wasm_linux_release_MonoAOTOffsets
monoCrossAOTTargetOS:
- android
- browser
@@ -1303,12 +1320,12 @@ extends:
nameSuffix: CrossAOT_Mono
runtimeVariant: crossaot
dependsOn:
- - mono_android_offsets
- - mono_browser_offsets
- - mono_wasi_offsets
- - mono_tvos_offsets
- - mono_ios_offsets
- - mono_maccatalyst_offsets
+ - build_android_x64_release_MonoAOTOffsets
+ - build_browser_wasm_linux_release_MonoAOTOffsets
+ - build_wasi_wasm_linux_release_MonoAOTOffsets
+ - build_tvos_arm64_release_MonoAOTOffsets
+ - build_ios_arm64_release_MonoAOTOffsets
+ - build_maccatalyst_x64_release_MonoAOTOffsets
monoCrossAOTTargetOS:
- android
- browser
diff --git a/src/workloads/workloads.csproj b/src/workloads/workloads.csproj
index 29669de949b9d..54eb3b3664ff4 100644
--- a/src/workloads/workloads.csproj
+++ b/src/workloads/workloads.csproj
@@ -9,9 +9,7 @@
$(ArtifactsObjDir)workloads/
$(WorkloadIntermediateOutputPath)VS/
$(ArtifactsBinDir)workloads/
- $(workloadArtifactsPath)/
$(ArtifactsShippingPackagesDir)
- $(workloadPackagesPath)/
false
@@ -141,7 +139,7 @@
-