mirror of https://github.com/dotnet/runtime
Make the dotnet/runtime official build an assetless build (#115311)
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
This commit is contained in:
parent
2b96e8a7d1
commit
e5798b9f08
|
@ -1,6 +1,6 @@
|
|||
<Project Sdk="Microsoft.Build.Traversal">
|
||||
|
||||
<ItemGroup Condition="'$(RestoreToolsetOnly)' != 'true'">
|
||||
<ItemGroup>
|
||||
<!-- Subsets are already imported by Directory.Build.props. -->
|
||||
<ProjectReference Include="@(ProjectToBuild)" />
|
||||
<!-- Only include tasks.proj during restore and build incrementally via a target. -->
|
||||
|
|
|
@ -5,45 +5,9 @@
|
|||
<AutoGenerateSymbolPackages>false</AutoGenerateSymbolPackages>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(DotNetFinalPublish)' != 'true' and '$(DotNetBuild)' != 'true'">
|
||||
<PushToLocalStorage>true</PushToLocalStorage>
|
||||
<ArtifactsStagingDir>$(ArtifactsDir)staging/</ArtifactsStagingDir>
|
||||
<SourceBuiltPdbArtifactsDir>$(ArtifactsStagingDir)SymStore</SourceBuiltPdbArtifactsDir>
|
||||
<!-- Put blobs where we put packages so our regular globbing in our publish join job finds them. -->
|
||||
<SourceBuiltAssetsDir>$(ArtifactsStagingDir)</SourceBuiltAssetsDir>
|
||||
<SourceBuiltShippingPackagesDir>$(ArtifactsStagingDir)packages/$(Configuration)/Shipping</SourceBuiltShippingPackagesDir>
|
||||
<SourceBuiltNonShippingPackagesDir>$(ArtifactsStagingDir)packages/$(Configuration)/NonShipping</SourceBuiltNonShippingPackagesDir>
|
||||
<PublishingUseHardlinksIfPossible>true</PublishingUseHardlinksIfPossible>
|
||||
<!-- We don't use the asset manifest from the vertical dotnet/runtime legs outside of the VMR. Just dump it in a temp dir. -->
|
||||
<SourceBuiltAssetManifestsDir>$(ArtifactsTmpDir)/manifests/$(Configuration)</SourceBuiltAssetManifestsDir>
|
||||
<AssetManifestName>VerticalManifest.xml</AssetManifestName>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- In the runtime official build, we only sign a subset of files. Add all of our blob artifacts here again for publishing -->
|
||||
<ItemGroup Condition="'$(DotNetFinalPublish)' == 'true'">
|
||||
<Artifact Include="$(ArtifactsPackagesDir)**\*.tar.gz;
|
||||
$(ArtifactsPackagesDir)**\*.zip;
|
||||
$(ArtifactsPackagesDir)**\*.deb;
|
||||
$(ArtifactsPackagesDir)**\*.rpm;
|
||||
$(ArtifactsPackagesDir)**\*.pkg;
|
||||
$(ArtifactsPackagesDir)**\*.exe;
|
||||
$(ArtifactsPackagesDir)**\*.msi;"
|
||||
Exclude="$(ArtifactsPackagesDir)**\Symbols.runtime.tar.gz"
|
||||
Kind="Blob"
|
||||
IsShipping="$([System.String]::Copy('%(RecursiveDir)').StartsWith('Shipping'))">
|
||||
<!-- Exclude wixpack.zip files from checksum generation -->
|
||||
<ChecksumPath Condition="$([System.String]::Copy('%(Filename)%(Extension)').EndsWith('.wixpack.zip')) != 'true'">%(FullPath).sha512</ChecksumPath>
|
||||
</Artifact>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- remove the manifest packages, they are built in the SDK repo now -->
|
||||
<ItemGroup Condition="'$(DotNetFinalPublish)' == 'true'">
|
||||
<Artifact Remove="$(ArtifactsShippingPackagesDir)*.Manifest-*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- The PGO runtime should always have External visibility, even if someone changes the default artifact visibility -->
|
||||
<ItemGroup>
|
||||
<Artifact Update="$(ArtifactsNonShippingPackagesDir)dotnet-runtime-pgo-*" Visibility="External" />
|
||||
<!-- The PGO runtime should always have External visibility, even if someone changes the default artifact visibility -->
|
||||
<ItemGroup>
|
||||
<Artifact Update="$(ArtifactsNonShippingPackagesDir)dotnet-runtime-pgo-*" Visibility="External" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--
|
||||
|
@ -91,9 +55,6 @@
|
|||
<ShouldGenerateProductVersionFiles Condition="'$(OutputRID)' == 'win-x64' and ('$(DotNetBuildPass)' == '' or '$(DotNetBuildPass)' == '1')">true</ShouldGenerateProductVersionFiles>
|
||||
<ShouldGenerateProductVersionFiles Condition="'$(DotNetBuildSourceOnly)' == 'true'">true</ShouldGenerateProductVersionFiles>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(DotNetBuildOrchestrator)' != 'true'">
|
||||
<ShouldGenerateProductVersionFiles Condition="'$(DotNetFinalPublish)' == 'true'">true</ShouldGenerateProductVersionFiles>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="GenerateProductVersionFiles"
|
||||
DependsOnTargets="GetNonStableProductVersion"
|
||||
|
@ -128,12 +89,12 @@
|
|||
DependsOnTargets="GetNonStableProductVersion"
|
||||
BeforeTargets="PublishToAzureDevOpsArtifacts"
|
||||
AfterTargets="GenerateChecksumsFromArtifacts">
|
||||
<ItemGroup Condition="'$(DotNetFinalPublish)' == 'true' or '$(DotNetBuildOrchestrator)' == 'true'">
|
||||
<ItemGroup Condition="'$(DotNetBuildOrchestrator)' == 'true'">
|
||||
<Artifact Condition="'%(Artifact.Kind)' != 'Package' and '%(Artifact.RelativeBlobPath)' == ''"
|
||||
RelativeBlobPath="Runtime/$(NonStableProductVersion)/%(Artifact.SubBlobFolder)%(Filename)%(Extension)" />
|
||||
</ItemGroup>
|
||||
<!-- In vertical dotnet/runtime legs outside of the VMR, set the "relative blob path" to shipping vs non-shipping to make our download/upload work. -->
|
||||
<ItemGroup Condition="'$(DotNetFinalPublish)' != 'true' and '$(DotNetBuildOrchestrator)' != 'true'">
|
||||
<ItemGroup Condition="'$(DotNetBuildOrchestrator)' != 'true'">
|
||||
<Artifact Condition="'%(Artifact.Kind)' == 'Blob' and '%(Artifact.IsShipping)' == 'true'"
|
||||
RelativeBlobPath="packages/$(Configuration)/Shipping/%(Filename)%(Extension)" />
|
||||
<Artifact Condition="'%(Artifact.Kind)' == 'Blob' and '%(Artifact.IsShipping)' != 'true'"
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
<TargetRid>$(OutputRID)</TargetRid>
|
||||
|
||||
<!-- The final stage of the runtime official build should publish everything. -->
|
||||
<EnableDefaultRidSpecificArtifacts Condition="'$(DotNetFinalPublish)' != ''">false</EnableDefaultRidSpecificArtifacts>
|
||||
<EnableDefaultRidSpecificArtifacts Condition="'$(EnableDefaultRidSpecificArtifacts)' == '' and '$(DotNetBuildOrchestrator)' != 'true'">true</EnableDefaultRidSpecificArtifacts>
|
||||
|
||||
<UseDotNetCertificate>true</UseDotNetCertificate>
|
||||
|
@ -62,7 +61,7 @@
|
|||
<FileSignInfo Include="Mono.Cecil.Rocks.dll" CertificateName="3PartySHA2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(DotNetFinalPublish)' != 'true'">
|
||||
<ItemGroup>
|
||||
<BlobArtifact Include="$(ArtifactsPackagesDir)**\*.tar.gz;
|
||||
$(ArtifactsPackagesDir)**\*.zip;
|
||||
$(ArtifactsPackagesDir)**\*.deb;
|
||||
|
@ -78,14 +77,6 @@
|
|||
</BlobArtifact>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- In the runtime official build, we only sign a subset of files. -->
|
||||
<ItemGroup Condition="'$(DotNetFinalPublish)' == 'true'">
|
||||
<BlobArtifact Include="$(ArtifactsPackagesDir)**\*.msi;
|
||||
$(ArtifactsPackagesDir)**\*.exe;
|
||||
$(ArtifactsPackagesDir)**\*.zip"
|
||||
SkipPublish="true" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(EnableBlobArtifacts)' == 'true'">
|
||||
<Artifact Include="@(BlobArtifact)" />
|
||||
|
||||
|
|
|
@ -54,24 +54,7 @@ jobs:
|
|||
testResultsFormat: ${{ parameters.testResultsFormat }}
|
||||
enableMicrobuild: ${{ parameters.isOfficialBuild }}
|
||||
enableMicrobuildForMacAndLinux: ${{ parameters.isOfficialBuild }}
|
||||
|
||||
templateContext:
|
||||
${{ if ne(parameters.templateContext, '') }}:
|
||||
${{ each pair in parameters.templateContext }}:
|
||||
${{ if notIn(pair.key, 'outputs') }}:
|
||||
${{ pair.key }}: ${{ pair.value }}
|
||||
outputs:
|
||||
- ${{ if ne(parameters.templateContext.outputs, '') }}:
|
||||
- ${{ each output in parameters.templateContext.outputs }}:
|
||||
${{ output.key }}: ${{ output.value }}
|
||||
- ${{ if eq(parameters.isOfficialBuild, true) }}:
|
||||
- output: pipelineArtifact
|
||||
displayName: 'Publish Pipeline Artifacts'
|
||||
${{ if eq(parameters.hostedOs, '') }}:
|
||||
artifactName: ${{ format('build_{0}{1}_{2}_{3}_{4}_Artifacts', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.nameSuffix) }}
|
||||
${{ if ne(parameters.hostedOs, '') }}:
|
||||
artifactName: ${{ format('build_{0}{1}_{2}_{3}_{4}_{5}_Artifacts', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.hostedOs, parameters.buildConfig, parameters.nameSuffix) }}
|
||||
targetPath: $(Build.SourcesDirectory)/artifacts/staging
|
||||
templateContext: ${{ parameters.templateContext }}
|
||||
|
||||
artifacts:
|
||||
publish:
|
||||
|
|
|
@ -22,9 +22,9 @@ extends:
|
|||
parameters:
|
||||
sdl:
|
||||
codeql:
|
||||
compiled:
|
||||
compiled:
|
||||
enabled: false
|
||||
justificationForDisabling: 'CodeQL is run on the runtime-codeql pipeline'
|
||||
justificationForDisabling: 'CodeQL is run manually on the runtime-codeql pipeline'
|
||||
credscan:
|
||||
suppressionsFile: $(Build.SourcesDirectory)/.config/CredScanSuppressions.json
|
||||
policheck:
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
parameters:
|
||||
- name: buildStage
|
||||
type: stage
|
||||
- name: otherStages
|
||||
type: stageList
|
||||
|
||||
extends:
|
||||
template: /eng/pipelines/common/templates/pipeline-with-resources.yml
|
||||
parameters:
|
||||
isOfficialBuild: true
|
||||
stages:
|
||||
- ${{ each stage in parameters.otherStages }}:
|
||||
- ${{ insert }}: ${{ stage }}
|
||||
- ${{ insert }}: ${{ parameters.buildStage }}
|
||||
|
||||
- stage: Publish
|
||||
jobs:
|
||||
- template: /eng/pipelines/official/prepare-signed-artifacts.yml
|
||||
parameters:
|
||||
buildStage: ${{ parameters.buildStage }}
|
||||
logArtifactName: 'Logs-PrepareSignedArtifacts_Attempt$(System.JobAttempt)'
|
||||
- template: /eng/common/templates-official/job/publish-build-assets.yml
|
||||
parameters:
|
||||
publishUsingPipelines: true
|
||||
publishAssetsImmediately: true
|
||||
pool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals 1es-windows-2022
|
||||
symbolPublishingAdditionalParameters: '/p:PublishSpecialClrFiles=true'
|
||||
dependsOn: PrepareSignedArtifacts
|
|
@ -1,73 +0,0 @@
|
|||
parameters:
|
||||
- name: logArtifactName
|
||||
type: string
|
||||
default: 'Logs-PrepareSignedArtifacts_Attempt$(System.JobAttempt)'
|
||||
- name: buildStage
|
||||
type: stage
|
||||
|
||||
jobs:
|
||||
- template: /eng/common/templates-official/job/job.yml
|
||||
parameters:
|
||||
name: 'PrepareSignedArtifacts'
|
||||
displayName: 'Prepare Signed Artifacts'
|
||||
|
||||
pool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals 1es-windows-2022
|
||||
|
||||
# Double the default timeout.
|
||||
timeoutInMinutes: 240
|
||||
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
enableMicrobuild: true
|
||||
|
||||
variables:
|
||||
- name: '_SignType'
|
||||
value: $[ coalesce(variables.OfficialSignType, 'real') ]
|
||||
|
||||
templateContext:
|
||||
inputs:
|
||||
- input: checkout
|
||||
repository: self
|
||||
clean: true
|
||||
fetchDepth: 20
|
||||
- ${{ each job in parameters.buildStage.jobs }}:
|
||||
# Source Build publishes itself, so we don't need to publish it
|
||||
- ${{ if notIn(job.job, 'Source_Build_Linux_x64')}}:
|
||||
- input: pipelineArtifact
|
||||
artifactName: ${{ job.job }}_Artifacts
|
||||
targetPath: $(Build.SourcesDirectory)\artifacts
|
||||
itemPattern: |
|
||||
**/*
|
||||
!_manifest/**/*
|
||||
outputs:
|
||||
- output: pipelineArtifact
|
||||
displayName: 'Publish BuildLogs'
|
||||
condition: succeededOrFailed()
|
||||
targetPath: '$(Build.StagingDirectory)\BuildLogs'
|
||||
artifactName: ${{ parameters.logArtifactName }}
|
||||
|
||||
steps:
|
||||
- script: >-
|
||||
build.cmd -restore -sign -publish -ci -configuration Release
|
||||
/p:RestoreToolsetOnly=true
|
||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||
/p:SignType=$(_SignType)
|
||||
/p:DotNetSignType=$(_SignType)
|
||||
/p:DotNetPublishUsingPipelines=true
|
||||
/p:DotNetFinalPublish=true
|
||||
/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()
|
|
@ -28,24 +28,30 @@ variables:
|
|||
extends:
|
||||
template: /eng/pipelines/common/templates/pipeline-with-resources.yml
|
||||
parameters:
|
||||
isOfficialBuild: true
|
||||
stages:
|
||||
- stage: Build
|
||||
jobs:
|
||||
|
||||
#
|
||||
# Build CoreCLR runtime packs
|
||||
# Build all runtime packs to ensure that the SDL tooling can analyze the code in this repo (including all dependencies on all platforms).
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- linux_x64
|
||||
- windows_x64
|
||||
- linux_x64
|
||||
- linux_musl_arm64
|
||||
- android_x64
|
||||
- linux_bionic_x64
|
||||
- browser_wasm
|
||||
- wasi_wasm
|
||||
jobParameters:
|
||||
buildArgs: -s clr+libs+host+packs -c $(_BuildConfig)
|
||||
nameSuffix: AllSubsets_CoreCLR
|
||||
isOfficialBuild: ${{ variables.isOfficialBuild }}
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -c $(_BuildConfig) -restore -build -pack /p:DotNetBuildAllRuntimePacks=true
|
||||
nameSuffix: CodeQL
|
||||
isOfficialBuild: false
|
||||
timeoutInMinutes: 360
|
||||
preBuildSteps:
|
||||
- task: CodeQL3000Init@0
|
||||
|
@ -53,26 +59,49 @@ extends:
|
|||
postBuildSteps:
|
||||
- task: CodeQL3000Finalize@0
|
||||
displayName: Finalize CodeQL (manually-injected)
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather packages for publish to artifacts
|
||||
inputs:
|
||||
SourceFolder: 'artifacts/packages'
|
||||
Contents: '**'
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
|
||||
templateContext:
|
||||
outputs:
|
||||
- output: pipelineArtifact
|
||||
displayName: Publish artifacts
|
||||
targetPath: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
|
||||
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
|
||||
condition: always()
|
||||
retryCountOnTaskFailure: 10 # for any logs being locked
|
||||
continueOnError: true
|
||||
|
||||
#
|
||||
# Build Mono runtime packs
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- linux_x64
|
||||
- windows_x64
|
||||
- maccatalyst_x64
|
||||
- osx_arm64
|
||||
- tvos_arm64
|
||||
- ios_arm64
|
||||
jobParameters:
|
||||
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig)
|
||||
nameSuffix: AllSubsets_Mono
|
||||
isOfficialBuild: ${{ variables.isOfficialBuild }}
|
||||
timeoutInMinutes: 360
|
||||
preBuildSteps:
|
||||
- task: CodeQL3000Init@0
|
||||
displayName: Initialize CodeQL (manually-injected)
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -c $(_BuildConfig) -restore -build -pack /p:DotNetBuildAllRuntimePacks=true
|
||||
isOfficialBuild: false
|
||||
timeoutInMinutes: 120
|
||||
postBuildSteps:
|
||||
- task: CodeQL3000Finalize@0
|
||||
displayName: Finalize CodeQL (manually-injected)
|
||||
- task: CopyFiles@2
|
||||
displayName: Gather packages for publish to artifacts
|
||||
inputs:
|
||||
SourceFolder: 'artifacts/packages'
|
||||
Contents: '**'
|
||||
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
|
||||
templateContext:
|
||||
outputs:
|
||||
- output: pipelineArtifact
|
||||
displayName: Publish artifacts
|
||||
targetPath: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
|
||||
artifactName: BuildArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(_BuildConfig)
|
||||
condition: always()
|
||||
retryCountOnTaskFailure: 10 # for any logs being locked
|
||||
continueOnError: true
|
||||
|
|
|
@ -30,9 +30,10 @@ variables:
|
|||
teamName: dotnet-core-acquisition
|
||||
|
||||
extends:
|
||||
template: /eng/pipelines/official/pipeline.yml
|
||||
template: /eng/pipelines/common/templates/pipeline-with-resources.yml
|
||||
parameters:
|
||||
otherStages:
|
||||
isOfficialBuild: true
|
||||
stages:
|
||||
- ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}:
|
||||
- stage: Localization
|
||||
dependsOn: []
|
||||
|
@ -56,443 +57,15 @@ extends:
|
|||
- template: /eng/common/templates-official/job/source-index-stage1.yml
|
||||
parameters:
|
||||
sourceIndexBuildCommand: build.cmd -subset libs.sfx+libs.oob -binarylog -os linux -ci /p:SkipLibrariesNativeRuntimePackages=true
|
||||
buildStage:
|
||||
stage: Build
|
||||
|
||||
- stage: Publish
|
||||
dependsOn: []
|
||||
jobs:
|
||||
#
|
||||
# Build CoreCLR runtime packs
|
||||
# Windows x64/arm64
|
||||
# Sign diagnostic files after native build
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
- template: /eng/common/templates-official/job/publish-build-assets.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- windows_x64
|
||||
- windows_x86
|
||||
- windows_arm64
|
||||
variables:
|
||||
- name: _SignDiagnosticFilesArgs
|
||||
value: ''
|
||||
- name: _EnableDefaultArtifactsArg
|
||||
value: $[iif(and(eq(variables.osGroup, 'windows'), eq(variables.archType, 'x64')),'/p:EnableDefaultRidSpecificArtifacts=false','')]
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
preBuildSteps:
|
||||
- template: /eng/pipelines/coreclr/templates/install-diagnostic-certs.yml
|
||||
parameters:
|
||||
isOfficialBuild: true
|
||||
certNames:
|
||||
- 'dac-dnceng-ssl-cert'
|
||||
vaultName: 'clrdiag-esrp-pme'
|
||||
azureSubscription: 'diagnostics-esrp-kvcertuser-pme'
|
||||
|
||||
buildArgs: -c $(_BuildConfig) -restore -build -publish /p:DotNetBuildAllRuntimePacks=true $(_SignDiagnosticFilesArgs) $(_EnableDefaultArtifactsArg)
|
||||
nameSuffix: AllRuntimes
|
||||
isOfficialBuild: true
|
||||
timeoutInMinutes: 120
|
||||
postBuildSteps:
|
||||
- template: /eng/pipelines/coreclr/templates/remove-diagnostic-certs.yml
|
||||
parameters:
|
||||
isOfficialBuild: true
|
||||
|
||||
#
|
||||
# Build all runtime packs
|
||||
# Mac x64/arm64
|
||||
# Sign and entitle createdump and corerun after native build.
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- osx_arm64
|
||||
- osx_x64
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -s clr.corelib+clr.nativecorelib+clr.nativeaotlibs+clr.tools+clr.packages+mono+libs+host.tools+host.pkg+packs -restore -build -publish -c $(_BuildConfig) /p:DotNetBuildAllRuntimePacks=true
|
||||
nameSuffix: AllRuntimes
|
||||
isOfficialBuild: ${{ variables.isOfficialBuild }}
|
||||
timeoutInMinutes: 120
|
||||
preBuildSteps:
|
||||
# Build our native assets first so we can sign them.
|
||||
- template: /eng/pipelines/common/templates/global-build-step.yml
|
||||
parameters:
|
||||
buildArgs: -s clr.runtime+clr.alljits+clr.nativeaotruntime+host.native -c $(_BuildConfig) /bl:$(Build.SourcesDirectory)/artifacts/logs/$(_BuildConfig)/CoreClrNativeBuild.binlog
|
||||
displayName: Build native CoreCLR and host components
|
||||
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- template: /eng/pipelines/common/macos-sign-with-entitlements.yml
|
||||
parameters:
|
||||
filesToSign:
|
||||
- name: createdump
|
||||
path: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
|
||||
- name: corerun
|
||||
path: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
|
||||
- name: dotnet
|
||||
path: $(Build.SourcesDirectory)/artifacts/bin/$(osGroup)-$(archType).$(_BuildConfig)/corehost
|
||||
- name: apphost
|
||||
path: $(Build.SourcesDirectory)/artifacts/bin/$(osGroup)-$(archType).$(_BuildConfig)/corehost
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy signed createdump to sharedFramework'
|
||||
inputs:
|
||||
contents: createdump
|
||||
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)
|
||||
targetFolder: $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(_BuildConfig)/sharedFramework
|
||||
overWrite: true
|
||||
|
||||
#
|
||||
# Build all runtime packs for Linux, Linux musl, and mobile
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- linux_x64
|
||||
- linux_arm
|
||||
- linux_arm64
|
||||
- linux_musl_x64
|
||||
- linux_musl_arm
|
||||
- linux_musl_arm64
|
||||
- android_x64
|
||||
- android_x86
|
||||
- android_arm
|
||||
- android_arm64
|
||||
- maccatalyst_x64
|
||||
- maccatalyst_arm64
|
||||
- tvossimulator_x64
|
||||
- tvossimulator_arm64
|
||||
- tvos_arm64
|
||||
- iossimulator_x64
|
||||
- iossimulator_arm64
|
||||
- ios_arm64
|
||||
- linux_bionic_x64
|
||||
- linux_bionic_arm
|
||||
- linux_bionic_arm64
|
||||
- browser_wasm
|
||||
- wasi_wasm
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -c $(_BuildConfig) -restore -build -publish /p:DotNetBuildAllRuntimePacks=true
|
||||
nameSuffix: AllRuntimes
|
||||
isOfficialBuild: true
|
||||
timeoutInMinutes: 120
|
||||
|
||||
#
|
||||
# Build and Pack CrossDac
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- windows_x64
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -s crossdacpack -restore -build -publish -c $(_BuildConfig) /p:EnableDefaultRidSpecificArtifacts=false /p:CrossRuntimeExtractionRoot=$(CrossRuntimeExtractionRoot) $(_SignDiagnosticFilesArgs)
|
||||
nameSuffix: CrossDac
|
||||
isOfficialBuild: true
|
||||
timeoutInMinutes: 120
|
||||
templateContext:
|
||||
inputs:
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_linux_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload
|
||||
itemPattern: |
|
||||
packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-x64.*.nupkg
|
||||
!packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-x64.*.symbols.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_linux_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload
|
||||
itemPattern: |
|
||||
packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-arm64.*.nupkg
|
||||
!packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-arm64.*.symbols.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_linux_musl_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload
|
||||
itemPattern: |
|
||||
packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-musl-x64.*.nupkg
|
||||
!packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-musl-x64.*.symbols.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_linux_musl_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload
|
||||
itemPattern: |
|
||||
packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-musl-arm64.*.nupkg
|
||||
!packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-musl-arm64.*.symbols.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_linux_arm_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload
|
||||
itemPattern: |
|
||||
packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-arm.*.nupkg
|
||||
!packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-arm.*.symbols.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_linux_musl_arm_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload
|
||||
itemPattern: |
|
||||
packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-musl-arm.*.nupkg
|
||||
!packages/Release/Shipping/Microsoft.NETCore.App.Runtime.linux-musl-arm.*.symbols.nupkg
|
||||
preBuildSteps:
|
||||
- powershell: $(Build.SourcesDirectory)/eng/extract-for-crossdac.ps1 -DownloadDirectory $(Build.ArtifactStagingDirectory)/artifacts/RuntimeDownload -ExtractDirectory $(CrossRuntimeExtractionRoot)
|
||||
displayName: Extract runtime packs
|
||||
- template: /eng/pipelines/coreclr/templates/install-diagnostic-certs.yml
|
||||
parameters:
|
||||
isOfficialBuild: true
|
||||
certNames:
|
||||
- 'dac-dnceng-ssl-cert'
|
||||
vaultName: 'clrdiag-esrp-pme'
|
||||
azureSubscription: 'diagnostics-esrp-kvcertuser-pme'
|
||||
postBuildSteps:
|
||||
- template: /eng/pipelines/coreclr/templates/remove-diagnostic-certs.yml
|
||||
parameters:
|
||||
isOfficialBuild: true
|
||||
dependsOn:
|
||||
- build_linux_x64_release_AllRuntimes
|
||||
- build_linux_arm_release_AllRuntimes
|
||||
- build_linux_arm64_release_AllRuntimes
|
||||
- build_linux_musl_x64_release_AllRuntimes
|
||||
- build_linux_musl_arm_release_AllRuntimes
|
||||
- build_linux_musl_arm64_release_AllRuntimes
|
||||
variables:
|
||||
- name: CrossRuntimeExtractionRoot
|
||||
value: $(Build.SourcesDirectory)/artifacts/CrossDac
|
||||
- name: _SignDiagnosticFilesArgs
|
||||
value: ''
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- browser_wasm
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -c $(_BuildConfig) -restore -build -publish /p:DotNetBuildAllRuntimePacks=true /p:WasmEnableThreads=true
|
||||
nameSuffix: Mono_multithread
|
||||
isOfficialBuild: true
|
||||
runtimeVariant: multithread
|
||||
|
||||
#
|
||||
# Build Mono LLVM runtime packs
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
platforms:
|
||||
- osx_x64
|
||||
- linux_x64
|
||||
- linux_arm64
|
||||
buildConfig: release
|
||||
runtimeFlavor: mono
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -s mono+libs+host+packs -c $(_BuildConfig) -restore -build -publish
|
||||
/p:MonoEnableLLVM=true /p:MonoAOTEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
|
||||
nameSuffix: Mono_LLVMAOT
|
||||
runtimeVariant: LLVMAOT
|
||||
isOfficialBuild: true
|
||||
|
||||
#
|
||||
# Build libraries (all TFMs) and packages
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: Release
|
||||
platforms:
|
||||
- windows_x64
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -s tools.illink+libs -restore -build -pack -publish -c $(_BuildConfig) /p:TestAssemblies=false /p:TestPackages=true /p:EnableDefaultRidSpecificArtifacts=false
|
||||
nameSuffix: Libraries_WithPackages
|
||||
isOfficialBuild: true
|
||||
timeoutInMinutes: 95
|
||||
#
|
||||
# Build SourceBuild packages
|
||||
#
|
||||
- template: /eng/common/templates-official/jobs/source-build.yml
|
||||
parameters:
|
||||
platforms:
|
||||
- name: Linux_x64
|
||||
targetRID: linux-x64
|
||||
container: SourceBuild_linux_x64
|
||||
|
||||
#
|
||||
# Build PGO Instrumented CoreCLR Release
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: Release
|
||||
helixQueueGroup: ci
|
||||
platforms:
|
||||
- windows_x64
|
||||
- windows_x86
|
||||
- linux_x64
|
||||
- windows_arm64
|
||||
- linux_arm64
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
buildArgs: -s clr.native+clr.corelib+clr.tools+clr.nativecorelib+libs+host+packs -c $(_BuildConfig) -restore -build -publish -pgoinstrument /p:SkipLibrariesNativeRuntimePackages=true
|
||||
isOfficialBuild: true
|
||||
nameSuffix: PGO
|
||||
timeoutInMinutes: 95
|
||||
|
||||
#
|
||||
# Build Workloads
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- windows_x64
|
||||
jobParameters:
|
||||
templatePath: 'templates-official'
|
||||
nameSuffix: Workloads
|
||||
templateContext:
|
||||
inputs:
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_windows_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.win-x64*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_windows_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.win-arm64*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_windows_x86_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.win-x86*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_android_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_android_x86_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_android_arm_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_android_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.android-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_browser_wasm_Linux_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.browser-wasm*.nupkg
|
||||
**/Microsoft.NET.Workload.Mono.ToolChain.Current.Manifest*.nupkg
|
||||
**/Microsoft.NET.Workload.Mono.ToolChain.net6.Manifest*.nupkg
|
||||
**/Microsoft.NET.Workload.Mono.ToolChain.net7.Manifest*.nupkg
|
||||
**/Microsoft.NET.Workload.Mono.ToolChain.net8.Manifest*.nupkg
|
||||
**/Microsoft.NET.Workload.Mono.ToolChain.net9.Manifest*.nupkg
|
||||
**/Microsoft.NET.Runtime.WebAssembly.Sdk*.nupkg
|
||||
**/Microsoft.NET.Runtime.WebAssembly.Templates*.nupkg
|
||||
**/Microsoft.NET.Sdk.WebAssembly.Pack*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: build_browser_wasm_linux_release_Mono_multithread_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_wasi_wasm_Linux_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NET.Runtime.WebAssembly.Wasi*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.wasi-wasm*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_ios_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NET.Runtime.MonoTargets.Sdk*.nupkg
|
||||
**/Microsoft.NET.Runtime.MonoAOTCompiler.Task*.nupkg
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.ios-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_iossimulator_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_iossimulator_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.iossimulator-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_maccatalyst_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_maccatalyst_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.maccatalyst-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_tvos_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.tvos-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_tvossimulator_x64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.tvossimulator-*.nupkg
|
||||
- input: pipelineArtifact
|
||||
artifactName: Build_tvossimulator_arm64_release_AllRuntimes_Artifacts
|
||||
targetPath: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
itemPattern: |
|
||||
**/Microsoft.NETCore.App.Runtime.Mono.tvossimulator-*.nupkg
|
||||
|
||||
preBuildSteps:
|
||||
- task: CopyFiles@2
|
||||
displayName: Flatten packages
|
||||
inputs:
|
||||
sourceFolder: $(Build.ArtifactStagingDirectory)/artifacts/workloadPackages
|
||||
contents: 'packages/Release/Shipping/*.nupkg'
|
||||
cleanTargetFolder: true
|
||||
targetFolder: $(Build.SourcesDirectory)/artifacts/workloadPackages
|
||||
flattenFolders: true
|
||||
|
||||
buildArgs: -s mono.workloads -c $(_BuildConfig) -restore -build -publish /p:PackageSource=$(Build.SourcesDirectory)/artifacts/workloadPackages /p:WorkloadOutputPath=$(Build.SourcesDirectory)/artifacts/workloads /p:EnableDefaultRidSpecificArtifacts=false
|
||||
|
||||
isOfficialBuild: true
|
||||
timeoutInMinutes: 120
|
||||
dependsOn:
|
||||
- Build_android_arm_release_AllRuntimes
|
||||
- Build_android_arm64_release_AllRuntimes
|
||||
- Build_android_x86_release_AllRuntimes
|
||||
- Build_android_x64_release_AllRuntimes
|
||||
- Build_browser_wasm_Linux_release_AllRuntimes
|
||||
- Build_wasi_wasm_linux_release_AllRuntimes
|
||||
- Build_ios_arm64_release_AllRuntimes
|
||||
- Build_iossimulator_x64_release_AllRuntimes
|
||||
- Build_iossimulator_arm64_release_AllRuntimes
|
||||
- Build_maccatalyst_arm64_release_AllRuntimes
|
||||
- Build_maccatalyst_x64_release_AllRuntimes
|
||||
- Build_tvos_arm64_release_AllRuntimes
|
||||
- Build_tvossimulator_arm64_release_AllRuntimes
|
||||
- Build_tvossimulator_x64_release_AllRuntimes
|
||||
- Build_windows_x64_release_AllRuntimes
|
||||
- Build_windows_x86_release_AllRuntimes
|
||||
- Build_windows_arm64_release_AllRuntimes
|
||||
- build_browser_wasm_linux_release_Mono_multithread
|
||||
publishUsingPipelines: true
|
||||
publishAssetsImmediately: true
|
||||
isAssetlessBuild: true
|
||||
pool:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals 1es-windows-2022
|
||||
|
|
Loading…
Reference in New Issue