mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-10 18:11:04 +09:00
Compress mono builds that don't run tests to single jobs (#37373)
* Compress mono builds that don't run tests to single jobs * PR Feedback
This commit is contained in:
parent
57b971b0bb
commit
a0c332469f
8 changed files with 160 additions and 253 deletions
|
@ -9,6 +9,7 @@ parameters:
|
|||
variables: {}
|
||||
timeoutInMinutes: ''
|
||||
pool: ''
|
||||
condition: true
|
||||
|
||||
jobs:
|
||||
- template: /eng/common/templates/job/job.yml
|
||||
|
@ -19,10 +20,19 @@ jobs:
|
|||
pool: ${{ parameters.pool }}
|
||||
container: ${{ parameters.container }}
|
||||
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
|
||||
condition: and(succeeded(), ${{ parameters.condition }})
|
||||
workspace:
|
||||
clean: all
|
||||
|
||||
variables: ${{ parameters.variables }}
|
||||
variables:
|
||||
- name: _osParameter
|
||||
value: -os ${{ parameters.osGroup }}
|
||||
|
||||
- ${{ if and(eq(parameters.osGroup, 'Linux'), eq(parameters.osSubGroup, '_musl')) }}:
|
||||
- name: _osParameter
|
||||
value: /p:RuntimeOS=linux-musl /p:OutputRid=linux-musl-${{ parameters.archType }}
|
||||
|
||||
- ${{ parameters.variables }}
|
||||
|
||||
steps:
|
||||
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml
|
||||
|
@ -37,7 +47,7 @@ jobs:
|
|||
displayName: Disk Usage before Build
|
||||
|
||||
# Build
|
||||
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} ${{ parameters.buildArgs }}
|
||||
- script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) ${{ parameters.buildArgs }}
|
||||
displayName: Build product
|
||||
|
||||
- ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}:
|
||||
|
@ -51,6 +61,6 @@ jobs:
|
|||
inputs:
|
||||
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/'
|
||||
PublishLocation: Container
|
||||
ArtifactName: $(Agent.Os)_PublishBuildAssets
|
||||
ArtifactName: Logs_Build_${{ parameters.osGroup }}_${{ parameters.osSubGroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
|
|
@ -30,6 +30,21 @@ jobs:
|
|||
- name: System.DisableZipDownload
|
||||
value: true
|
||||
|
||||
- ${{ if eq(parameters.jobParameters.buildConfig, 'checked') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Checked'
|
||||
|
||||
- ${{ if eq(parameters.jobParameters.buildConfig, 'debug') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Debug'
|
||||
|
||||
- ${{ if eq(parameters.jobParameters.buildConfig, 'release') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Release'
|
||||
|
||||
- name: _BuildConfig
|
||||
value: $(buildConfigUpper)
|
||||
|
||||
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
|
||||
- name: archiveExtension
|
||||
value: '.zip'
|
||||
|
|
|
@ -22,7 +22,6 @@ jobs:
|
|||
- template: xplat-pipeline-job.yml
|
||||
parameters:
|
||||
buildConfig: ${{ parameters.buildConfig }}
|
||||
_BuildConfig: ${{ parameters.buildConfig }}
|
||||
archType: ${{ parameters.archType }}
|
||||
osGroup: ${{ parameters.osGroup }}
|
||||
osSubgroup: ${{ parameters.osSubgroup }}
|
||||
|
|
|
@ -72,21 +72,6 @@ jobs:
|
|||
- name: buildConfig
|
||||
value: ${{ parameters.buildConfig }}
|
||||
|
||||
- ${{ if eq(parameters.buildConfig, 'checked') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Checked'
|
||||
|
||||
- ${{ if eq(parameters.buildConfig, 'debug') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Debug'
|
||||
|
||||
- ${{ if eq(parameters.buildConfig, 'release') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Release'
|
||||
|
||||
- name: _BuildConfig
|
||||
value: $(buildConfigUpper)
|
||||
|
||||
- name: archType
|
||||
value: ${{ parameters.archType }}
|
||||
|
||||
|
|
|
@ -59,9 +59,6 @@ jobs:
|
|||
|
||||
- name: OfficialBuildArg
|
||||
value: ''
|
||||
|
||||
- name: _BuildConfig
|
||||
value: ${{ parameters.buildConfig }}
|
||||
|
||||
- name: SkipTests
|
||||
value: ${{ or(
|
||||
|
|
|
@ -38,7 +38,6 @@ jobs:
|
|||
pool: ${{ parameters.pool }}
|
||||
variables:
|
||||
- _buildScriptFileName: build
|
||||
- _BuildConfig: ${{ parameters.buildConfig }}
|
||||
|
||||
- _msbuildCommonParameters: ''
|
||||
# rename this variable, due to collision with build-native.proj
|
||||
|
|
|
@ -70,17 +70,6 @@ jobs:
|
|||
- name: buildConfig
|
||||
value: ${{ parameters.buildConfig }}
|
||||
|
||||
- ${{ if eq(parameters.buildConfig, 'debug') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Debug'
|
||||
|
||||
- ${{ if eq(parameters.buildConfig, 'release') }}:
|
||||
- name: buildConfigUpper
|
||||
value: 'Release'
|
||||
|
||||
- name: _BuildConfig
|
||||
value: $(buildConfigUpper)
|
||||
|
||||
- name: archType
|
||||
value: ${{ parameters.archType }}
|
||||
|
||||
|
|
|
@ -233,6 +233,138 @@ jobs:
|
|||
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true)))
|
||||
|
||||
# Build the whole product using Mono runtime
|
||||
# Only when libraries, mono or installer are changed
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Android_x86
|
||||
- Android_arm64
|
||||
- tvOS_x64
|
||||
- iOS_arm64
|
||||
- iOS_x86
|
||||
- Browser_wasm
|
||||
- Linux_arm
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
nameSuffix: All_Mono
|
||||
buildArgs: -s mono+libs+installer -c $(_BuildConfig)
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: Release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Android_x64
|
||||
- Android_arm
|
||||
- tvOS_arm64
|
||||
- iOS_arm
|
||||
- iOS_x64
|
||||
- Linux_musl_x64
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
nameSuffix: All_Mono
|
||||
buildArgs: -s mono+libs+installer -c $(_BuildConfig)
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Build Mono and Installer on LLVMJIT mode
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: Release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- OSX_x64
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
nameSuffix: All_Mono_LLVMJIT
|
||||
buildArgs: -s mono+libs+installer -c $(_BuildConfig)
|
||||
/p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Linux_x64
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
nameSuffix: All_Mono_LLVMJIT
|
||||
buildArgs: -s mono+libs+installer -c $(_BuildConfig)
|
||||
/p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Build Mono and Installer on LLVMAOT mode
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: Release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Linux_x64
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
nameSuffix: All_Mono_LLVMAOT
|
||||
buildArgs: -s mono+libs+installer -c $(_BuildConfig)
|
||||
/p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/common/global-build-job.yml
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- OSX_x64
|
||||
jobParameters:
|
||||
testGroup: innerloop
|
||||
nameSuffix: All_Mono_LLVMAOT
|
||||
buildArgs: -s mono+libs+installer -c $(_BuildConfig)
|
||||
/p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Build Mono debug
|
||||
# Only when libraries or mono changed
|
||||
|
@ -243,22 +375,9 @@ jobs:
|
|||
runtimeFlavor: mono
|
||||
buildConfig: debug
|
||||
platforms:
|
||||
- Android_x64
|
||||
- Android_x86
|
||||
- Android_arm
|
||||
- Android_arm64
|
||||
- tvOS_x64
|
||||
- tvOS_arm64
|
||||
- iOS_x64
|
||||
- iOS_x86
|
||||
- iOS_arm
|
||||
- iOS_arm64
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
- Linux_arm
|
||||
- Linux_arm64
|
||||
- Linux_musl_x64
|
||||
- Browser_wasm
|
||||
# - Linux_musl_arm64
|
||||
- Windows_NT_x64
|
||||
# - Windows_NT_x86
|
||||
|
@ -281,21 +400,8 @@ jobs:
|
|||
runtimeFlavor: mono
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- Android_x64
|
||||
- Android_x86
|
||||
- Android_arm
|
||||
- Android_arm64
|
||||
- tvOS_x64
|
||||
- tvOS_arm64
|
||||
- iOS_x64
|
||||
- iOS_x86
|
||||
- iOS_arm
|
||||
- iOS_arm64
|
||||
- Linux_x64
|
||||
- Linux_arm
|
||||
- Linux_arm64
|
||||
- Linux_musl_x64
|
||||
- Browser_wasm
|
||||
# - Linux_musl_arm64
|
||||
- Windows_NT_x64
|
||||
# - Windows_NT_x86
|
||||
|
@ -327,112 +433,6 @@ jobs:
|
|||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Build Mono LLVM debug
|
||||
# Only when libraries or mono changed
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/mono/templates/build-job.yml
|
||||
runtimeFlavor: mono
|
||||
buildConfig: debug
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
# - Linux_arm
|
||||
# - Linux_arm64
|
||||
# - Linux_musl_x64
|
||||
# - Linux_musl_arm64
|
||||
# - Windows_NT_x64
|
||||
# - Windows_NT_x86
|
||||
# - Windows_NT_arm
|
||||
# - Windows_NT_arm64
|
||||
jobParameters:
|
||||
runtimeVariant: LLVMJIT
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/mono/templates/build-job.yml
|
||||
runtimeFlavor: mono
|
||||
buildConfig: debug
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
# - Linux_arm
|
||||
# - Linux_arm64
|
||||
# - Linux_musl_x64
|
||||
# - Linux_musl_arm64
|
||||
# - Windows_NT_x64
|
||||
# - Windows_NT_x86
|
||||
# - Windows_NT_arm
|
||||
# - Windows_NT_arm64
|
||||
jobParameters:
|
||||
runtimeVariant: LLVMAOT
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Build Mono LLVM release
|
||||
# Only when libraries or mono changed
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/mono/templates/build-job.yml
|
||||
runtimeFlavor: mono
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
# - Linux_arm
|
||||
# - Linux_arm64
|
||||
# - Linux_musl_x64
|
||||
# - Linux_musl_arm64
|
||||
# - Windows_NT_x64
|
||||
# - Windows_NT_x86
|
||||
# - Windows_NT_arm
|
||||
# - Windows_NT_arm64
|
||||
jobParameters:
|
||||
runtimeVariant: LLVMJIT
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/mono/templates/build-job.yml
|
||||
runtimeFlavor: mono
|
||||
buildConfig: release
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
# - Linux_arm
|
||||
# - Linux_arm64
|
||||
# - Linux_musl_x64
|
||||
# - Linux_musl_arm64
|
||||
# - Windows_NT_x64
|
||||
# - Windows_NT_x86
|
||||
# - Windows_NT_arm
|
||||
# - Windows_NT_arm64
|
||||
jobParameters:
|
||||
runtimeVariant: LLVMAOT
|
||||
condition: >-
|
||||
or(
|
||||
eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true),
|
||||
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
|
||||
eq(variables['isFullMatrix'], true))
|
||||
|
||||
#
|
||||
# Build libraries using live CoreLib
|
||||
# These set of libraries are built always no matter what changed
|
||||
|
@ -466,38 +466,6 @@ jobs:
|
|||
jobParameters:
|
||||
liveRuntimeBuildConfig: release
|
||||
|
||||
#
|
||||
# Build libraries using Mono CoreLib only
|
||||
#
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/libraries/build-job.yml
|
||||
buildConfig: Release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Android_x64
|
||||
- Android_arm
|
||||
- tvOS_arm64
|
||||
- iOS_arm
|
||||
- iOS_x64
|
||||
jobParameters:
|
||||
liveRuntimeBuildConfig: release
|
||||
|
||||
- template: /eng/pipelines/common/platform-matrix.yml
|
||||
parameters:
|
||||
jobTemplate: /eng/pipelines/libraries/build-job.yml
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Android_x86
|
||||
- Android_arm64
|
||||
- tvOS_x64
|
||||
- iOS_arm64
|
||||
- iOS_x86
|
||||
- Browser_wasm
|
||||
jobParameters:
|
||||
liveRuntimeBuildConfig: debug
|
||||
|
||||
#
|
||||
# Libraries Build that only run when libraries is changed
|
||||
#
|
||||
|
@ -583,61 +551,6 @@ jobs:
|
|||
liveRuntimeBuildConfig: release
|
||||
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
|
||||
- template: /eng/pipelines/installer/installer-matrix.yml
|
||||
parameters:
|
||||
buildConfig: Release
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Android_x64
|
||||
- Android_arm
|
||||
- tvOS_arm64
|
||||
- iOS_arm
|
||||
- iOS_x64
|
||||
jobParameters:
|
||||
liveRuntimeBuildConfig: release
|
||||
liveLibrariesBuildConfig: Release
|
||||
|
||||
- template: /eng/pipelines/installer/installer-matrix.yml
|
||||
parameters:
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- Android_x86
|
||||
- Android_arm64
|
||||
- tvOS_x64
|
||||
- iOS_arm64
|
||||
- iOS_x86
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
- Browser_wasm
|
||||
jobParameters:
|
||||
liveRuntimeBuildConfig: release
|
||||
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
|
||||
- template: /eng/pipelines/installer/installer-matrix.yml
|
||||
parameters:
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
jobParameters:
|
||||
runtimeVariant: LLVMJIT
|
||||
liveRuntimeBuildConfig: release
|
||||
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
|
||||
- template: /eng/pipelines/installer/installer-matrix.yml
|
||||
parameters:
|
||||
buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
runtimeFlavor: mono
|
||||
platforms:
|
||||
- OSX_x64
|
||||
- Linux_x64
|
||||
jobParameters:
|
||||
runtimeVariant: LLVMAOT
|
||||
liveRuntimeBuildConfig: release
|
||||
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
|
||||
|
||||
#
|
||||
# Libraries Test Build
|
||||
# Only when CoreCLR, Mono or Libraries is changed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue