From 7d4d9675f085487cbab076db78f6bf376991a68a Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:52:33 +0300 Subject: [PATCH 1/4] Add freebsd-arm64 CI --- eng/pipelines/common/platform-matrix.yml | 24 +++++++++++++++++-- .../templates/pipeline-with-resources.yml | 5 ++++ eng/pipelines/runtime.yml | 1 + 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 447e4c5c1f164f..178bb4244e68f7 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -557,7 +557,7 @@ jobs: buildConfig: ${{ parameters.buildConfig }} ${{ insert }}: ${{ parameters.jobParameters }} -# FreeBSD +# FreeBSD x64 - ${{ if containsValue(parameters.platforms, 'freebsd_x64') }}: - template: xplat-setup.yml parameters: @@ -577,7 +577,27 @@ jobs: crossBuild: true ${{ insert }}: ${{ parameters.jobParameters }} -# OpenBSD +# FreeBSD arm64 +- ${{ if containsValue(parameters.platforms, 'freebsd_arm64') }}: + - template: xplat-setup.yml + parameters: + jobTemplate: ${{ parameters.jobTemplate }} + helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} + variables: ${{ parameters.variables }} + osGroup: freebsd + archType: arm64 + targetRid: freebsd-arm64 + platform: freebsd_arm64 + shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + container: freebsd_arm64 + jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} + buildConfig: ${{ parameters.buildConfig }} + helixQueueGroup: ${{ parameters.helixQueueGroup }} + crossBuild: true + ${{ insert }}: ${{ parameters.jobParameters }} + +# OpenBSD x64 - ${{ if containsValue(parameters.platforms, 'openbsd_x64') }}: - template: xplat-setup.yml parameters: diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml index a1e2cd41c0414a..da509d0e2a586f 100644 --- a/eng/pipelines/common/templates/pipeline-with-resources.yml +++ b/eng/pipelines/common/templates/pipeline-with-resources.yml @@ -123,6 +123,11 @@ extends: env: ROOTFS_DIR: /crossrootfs/x64 + freebsd_arm64: + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-freebsd-14-arm64@sha256:01ac33cd4bbed190503254d8d013da90fc29494273e562e38b897dd10c5d5739 + env: + ROOTFS_DIR: /crossrootfs/arm64 + openbsd_x64: image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-openbsd-amd64@sha256:496173363516799f0fb86ae2a03dffaa46bb07a40764997d7fef591cc4fd21ba env: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 3491320a2d0581..028b3f434c9de0 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -679,6 +679,7 @@ extends: runtimeFlavor: coreclr platforms: - freebsd_x64 + - freebsd_arm64 - linux_riscv64 - linux_loongarch64 - openbsd_x64 From fd705e650b6fe92840a9b58e446f0f6649387928 Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Sun, 26 Jul 2026 14:11:46 +0300 Subject: [PATCH 2/4] Move bootstrap to community pipeline --- eng/pipelines/runtime-community.yml | 39 +++++++++++++++++++++++++++++ eng/pipelines/runtime.yml | 30 ---------------------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/eng/pipelines/runtime-community.yml b/eng/pipelines/runtime-community.yml index 130b548fd64159..1205078fea2467 100644 --- a/eng/pipelines/runtime-community.yml +++ b/eng/pipelines/runtime-community.yml @@ -100,3 +100,42 @@ extends: eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true), eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), eq(variables['isRollingBuild'], true)) + + # + # Build CoreCLR + Libs + Host using bootstrap + # + - 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: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: coreclr + platforms: + - freebsd_x64 + - freebsd_arm64 + - linux_riscv64 + - linux_loongarch64 + - openbsd_x64 + variables: + # map dependencies variables to local variables + - name: coreclrContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'] ] + - name: installerContainsChange + value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'] ] + jobParameters: + testScope: innerloop + nameSuffix: CoreCLR_Bootstrapped + buildArgs: -s clr+libs+host+packs+tools.cdac -c $(_BuildConfig) -rc Checked --bootstrap + timeoutInMinutes: 120 + preBuildSteps: + - template: /eng/pipelines/coreclr/templates/setup-sccache.yml + postBuildSteps: + - template: /eng/pipelines/coreclr/templates/sccache-stats.yml + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml + parameters: + testBuildArgs: skipmanaged generatelayoutonly --use-bootstrap + condition: >- + or( + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), + eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isRollingBuild'], true)) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 028b3f434c9de0..c35e47eb64e1ea 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -668,36 +668,6 @@ extends: eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), eq(variables['isRollingBuild'], true)) - # - # Build CoreCLR + Libs + Host - # - - 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: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: coreclr - platforms: - - freebsd_x64 - - freebsd_arm64 - - linux_riscv64 - - linux_loongarch64 - - openbsd_x64 - jobParameters: - testScope: innerloop - nameSuffix: CoreCLR_Bootstrapped - buildArgs: -s clr+libs+host+packs+tools.cdac -c $(_BuildConfig) -rc Checked --bootstrap - timeoutInMinutes: 120 - preBuildSteps: - - template: /eng/pipelines/coreclr/templates/setup-sccache.yml - postBuildSteps: - - template: /eng/pipelines/coreclr/templates/sccache-stats.yml - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) - # # CoreCLR NativeAOT debug build and smoke tests # Only when CoreCLR is changed From 03103987eb81d77942db0ceb78bc3c3edf866dba Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Sun, 26 Jul 2026 15:21:04 +0300 Subject: [PATCH 3/4] Unconditionally run bootstrap on schedule --- eng/pipelines/runtime-community.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/runtime-community.yml b/eng/pipelines/runtime-community.yml index 1205078fea2467..bcfbbca6a8dd1d 100644 --- a/eng/pipelines/runtime-community.yml +++ b/eng/pipelines/runtime-community.yml @@ -18,6 +18,17 @@ trigger: - PATENTS.TXT - THIRD-PARTY-NOTICES.TXT +pr: + branches: + include: + - main + - release/*.* + exclude: + - release/6.0* + paths: + include: + - eng/pipelines/runtime-community.yml + schedules: - cron: "0 7,19 * * *" # run at 7:00 and 19:00 (UTC) which is 23:00 and 11:00 (PST). displayName: Runtime-community default schedule @@ -134,8 +145,3 @@ extends: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests.yml parameters: testBuildArgs: skipmanaged generatelayoutonly --use-bootstrap - condition: >- - or( - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true), - eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isRollingBuild'], true)) From 45e27eb91df7188df2eee1625a9f2571b9393e0b Mon Sep 17 00:00:00 2001 From: Adeel <3840695+am11@users.noreply.github.com> Date: Sun, 26 Jul 2026 15:27:30 +0300 Subject: [PATCH 4/4] Cleanups --- eng/pipelines/runtime-community.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/eng/pipelines/runtime-community.yml b/eng/pipelines/runtime-community.yml index bcfbbca6a8dd1d..5b1bd169015e24 100644 --- a/eng/pipelines/runtime-community.yml +++ b/eng/pipelines/runtime-community.yml @@ -3,8 +3,6 @@ trigger: branches: include: - release/*.* - exclude: - - release/6.0* paths: include: - '*' @@ -23,8 +21,6 @@ pr: include: - main - release/*.* - exclude: - - release/6.0* paths: include: - eng/pipelines/runtime-community.yml