1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-12 02:30:29 +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: {} variables: {}
timeoutInMinutes: '' timeoutInMinutes: ''
pool: '' pool: ''
condition: true
jobs: jobs:
- template: /eng/common/templates/job/job.yml - template: /eng/common/templates/job/job.yml
@ -19,10 +20,19 @@ jobs:
pool: ${{ parameters.pool }} pool: ${{ parameters.pool }}
container: ${{ parameters.container }} container: ${{ parameters.container }}
timeoutInMinutes: ${{ parameters.timeoutInMinutes }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
condition: and(succeeded(), ${{ parameters.condition }})
workspace: workspace:
clean: all 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: steps:
- template: /eng/pipelines/common/clone-checkout-bundle-step.yml - template: /eng/pipelines/common/clone-checkout-bundle-step.yml
@ -37,7 +47,7 @@ jobs:
displayName: Disk Usage before Build displayName: Disk Usage before Build
# 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 displayName: Build product
- ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}:
@ -51,6 +61,6 @@ jobs:
inputs: inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/' PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/'
PublishLocation: Container PublishLocation: Container
ArtifactName: $(Agent.Os)_PublishBuildAssets ArtifactName: Logs_Build_${{ parameters.osGroup }}_${{ parameters.osSubGroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.nameSuffix }}
continueOnError: true continueOnError: true
condition: always() condition: always()

View file

@ -30,6 +30,21 @@ jobs:
- name: System.DisableZipDownload - name: System.DisableZipDownload
value: true 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') }}: - ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
- name: archiveExtension - name: archiveExtension
value: '.zip' value: '.zip'

View file

@ -22,7 +22,6 @@ jobs:
- template: xplat-pipeline-job.yml - template: xplat-pipeline-job.yml
parameters: parameters:
buildConfig: ${{ parameters.buildConfig }} buildConfig: ${{ parameters.buildConfig }}
_BuildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }} archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }} osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }} osSubgroup: ${{ parameters.osSubgroup }}

View file

@ -72,21 +72,6 @@ jobs:
- name: buildConfig - name: buildConfig
value: ${{ parameters.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 - name: archType
value: ${{ parameters.archType }} value: ${{ parameters.archType }}

View file

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

View file

@ -38,7 +38,6 @@ jobs:
pool: ${{ parameters.pool }} pool: ${{ parameters.pool }}
variables: variables:
- _buildScriptFileName: build - _buildScriptFileName: build
- _BuildConfig: ${{ parameters.buildConfig }}
- _msbuildCommonParameters: '' - _msbuildCommonParameters: ''
# rename this variable, due to collision with build-native.proj # rename this variable, due to collision with build-native.proj

View file

@ -70,17 +70,6 @@ jobs:
- name: buildConfig - name: buildConfig
value: ${{ parameters.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 - name: archType
value: ${{ parameters.archType }} value: ${{ parameters.archType }}

View file

@ -233,6 +233,138 @@ jobs:
eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true),
eq(variables['isFullMatrix'], 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 # Build Mono debug
# Only when libraries or mono changed # Only when libraries or mono changed
@ -243,22 +375,9 @@ jobs:
runtimeFlavor: mono runtimeFlavor: mono
buildConfig: debug buildConfig: debug
platforms: platforms:
- Android_x64
- Android_x86
- Android_arm
- Android_arm64
- tvOS_x64
- tvOS_arm64
- iOS_x64
- iOS_x86
- iOS_arm
- iOS_arm64
- OSX_x64 - OSX_x64
- Linux_x64 - Linux_x64
- Linux_arm
- Linux_arm64 - Linux_arm64
- Linux_musl_x64
- Browser_wasm
# - Linux_musl_arm64 # - Linux_musl_arm64
- Windows_NT_x64 - Windows_NT_x64
# - Windows_NT_x86 # - Windows_NT_x86
@ -281,21 +400,8 @@ jobs:
runtimeFlavor: mono runtimeFlavor: mono
buildConfig: release buildConfig: release
platforms: platforms:
- Android_x64
- Android_x86
- Android_arm
- Android_arm64
- tvOS_x64
- tvOS_arm64
- iOS_x64
- iOS_x86
- iOS_arm
- iOS_arm64
- Linux_x64 - Linux_x64
- Linux_arm
- Linux_arm64 - Linux_arm64
- Linux_musl_x64
- Browser_wasm
# - Linux_musl_arm64 # - Linux_musl_arm64
- Windows_NT_x64 - Windows_NT_x64
# - Windows_NT_x86 # - Windows_NT_x86
@ -327,112 +433,6 @@ jobs:
eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true),
eq(variables['isFullMatrix'], 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 # Build libraries using live CoreLib
# These set of libraries are built always no matter what changed # These set of libraries are built always no matter what changed
@ -466,38 +466,6 @@ jobs:
jobParameters: jobParameters:
liveRuntimeBuildConfig: release 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 # Libraries Build that only run when libraries is changed
# #
@ -583,61 +551,6 @@ jobs:
liveRuntimeBuildConfig: release liveRuntimeBuildConfig: release
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} 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 # Libraries Test Build
# Only when CoreCLR, Mono or Libraries is changed # Only when CoreCLR, Mono or Libraries is changed