# Setting batch to true, triggers one build at a time. # if there is a push while a build in progress, it will wait, # until the running build finishes, and produce a build with all the changes # that happened during the last build. trigger: batch: true branches: include: - release/*.* paths: include: - '*' exclude: - eng/Version.Details.xml - .github/* - docs/* - CODE-OF-CONDUCT.md - CONTRIBUTING.md - LICENSE.TXT - PATENTS.TXT - README.md - SECURITY.md - THIRD-PARTY-NOTICES.TXT schedules: - cron: "0 7,19 * * *" # run at 7:00 and 19:00 (UTC) which is 23:00 and 11:00 (PST). displayName: Runtime-staging default schedule branches: include: - main always: false # run only if there were changes since the last successful scheduled run. pr: branches: include: - main - release/*.* paths: include: - '*' - docs/manpages/* exclude: - eng/Version.Details.xml - .github/* - docs/* - CODE-OF-CONDUCT.md - CONTRIBUTING.md - LICENSE.TXT - PATENTS.TXT - README.md - SECURITY.md - THIRD-PARTY-NOTICES.TXT variables: - template: /eng/pipelines/common/variables.yml jobs: # # Evaluate paths # - ${{ if eq(variables.dependOnEvaluatePaths, true) }}: - template: /eng/pipelines/common/evaluate-default-paths.yml # # WebAssembly legs - run windows builds. Also, debugger tests which are currently # unstable # - template: /eng/pipelines/common/templates/wasm-library-tests.yml parameters: platforms: - Browser_wasm_win alwaysRun: ${{ variables.isRollingBuild }} scenarios: - normal - WasmTestOnBrowser # AOT Library tests - template: /eng/pipelines/common/templates/wasm-library-aot-tests.yml parameters: platforms: - Browser_wasm_win nameSuffix: _AOT runSmokeOnlyArg: $(_runSmokeTestsOnlyArg) runAOT: true alwaysRun: ${{ variables.isRollingBuild }} - template: /eng/pipelines/common/templates/wasm-build-tests.yml parameters: platforms: - Browser_wasm_win alwaysRun: ${{ variables.isRollingBuild }} - template: /eng/pipelines/common/templates/wasm-debugger-tests.yml parameters: platforms: - Browser_wasm - Browser_wasm_win alwaysRun: ${{ variables.isRollingBuild }} # # Build the whole product using Mono and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml buildConfig: Release runtimeFlavor: mono platforms: - Linux_armv6 variables: # map dependencies variables to local variables - name: librariesContainsChange value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - name: monoContainsChange value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ] jobParameters: testScope: innerloop nameSuffix: AllSubsets_Mono buildArgs: -s mono+clr+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true timeoutInMinutes: 120 condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isRollingBuild'], true)) ${{ if eq(variables['isRollingBuild'], true) }}: # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # Build the whole product using Mono and run runtime tests with the JIT. # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release runtimeFlavor: mono platforms: - iOSSimulator_x64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: pr/dotnet/runtime/$(Build.SourceBranch) - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: ci/dotnet/runtime/$(Build.SourceBranch) - name: timeoutPerTestInMinutes value: 60 - name: timeoutPerTestCollectionInMinutes value: 180 jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 240 condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), eq(variables['isRollingBuild'], true)) ${{ if eq(variables['isRollingBuild'], true) }}: # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # Build the whole product using Mono for Android and run runtime tests with Android devices # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Release runtimeFlavor: mono platforms: - Android_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: pr/dotnet/runtime/$(Build.SourceBranch) - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: ci/dotnet/runtime/$(Build.SourceBranch) - name: timeoutPerTestInMinutes value: 60 - name: timeoutPerTestCollectionInMinutes value: 180 jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 240 condition: >- or( eq(dependencies.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true), eq(variables['isRollingBuild'], true)) # don't run tests on PRs until we can get significantly more devices # Turn off the testing for now, until https://github.com/dotnet/runtime/issues/60128 gets resolved # ${{ if eq(variables['isRollingBuild'], true) }}: # # extra steps, run tests # extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml # extraStepsParameters: # creator: dotnet-bot # testRunNamePrefixSuffix: Mono_$(_BuildConfig) # # CoreCLR Build for running Apple Silicon libraries-innerloop # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml buildConfig: release platforms: - ${{ if eq(variables['isRollingBuild'], true) }}: - OSX_arm64 jobParameters: testGroup: innerloop # # Libraries Build for running Apple Silicon libraries-innerloop # - template: /eng/pipelines/common/platform-matrix.yml parameters: jobTemplate: /eng/pipelines/libraries/build-job.yml buildConfig: Release platforms: - ${{ if eq(variables['isRollingBuild'], true) }}: - OSX_arm64 helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml jobParameters: isOfficialBuild: ${{ variables['isOfficialBuild'] }} runTests: true testScope: innerloop liveRuntimeBuildConfig: release