1
0
Fork 0
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:
Santiago Fernandez Madero 2020-06-04 15:57:10 -07:00 committed by GitHub
parent 57b971b0bb
commit a0c332469f
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 160 additions and 253 deletions

View file

@ -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()

View file

@ -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'

View file

@ -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 }}

View file

@ -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 }}

View file

@ -59,9 +59,6 @@ jobs:
- name: OfficialBuildArg
value: ''
- name: _BuildConfig
value: ${{ parameters.buildConfig }}
- name: SkipTests
value: ${{ or(

View file

@ -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

View file

@ -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 }}

View file

@ -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