diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 1a40af38ba03f8..447e4c5c1f164f 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -577,6 +577,26 @@ jobs: crossBuild: true ${{ insert }}: ${{ parameters.jobParameters }} +# OpenBSD +- ${{ if containsValue(parameters.platforms, 'openbsd_x64') }}: + - template: xplat-setup.yml + parameters: + jobTemplate: ${{ parameters.jobTemplate }} + helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} + variables: ${{ parameters.variables }} + osGroup: openbsd + archType: x64 + targetRid: openbsd-x64 + platform: openbsd_x64 + shouldContinueOnError: ${{ parameters.shouldContinueOnError }} + container: openbsd_x64 + jobParameters: + runtimeFlavor: ${{ parameters.runtimeFlavor }} + buildConfig: ${{ parameters.buildConfig }} + helixQueueGroup: ${{ parameters.helixQueueGroup }} + crossBuild: true + ${{ insert }}: ${{ parameters.jobParameters }} + # Android x64 - ${{ if containsValue(parameters.platforms, 'android_x64') }}: diff --git a/eng/pipelines/common/templates/pipeline-with-resources.yml b/eng/pipelines/common/templates/pipeline-with-resources.yml index 66b314088fbde6..a1e2cd41c0414a 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 + openbsd_x64: + image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net11.0-cross-openbsd-amd64@sha256:496173363516799f0fb86ae2a03dffaa46bb07a40764997d7fef591cc4fd21ba + env: + ROOTFS_DIR: /crossrootfs/x64 + tizen_armel: image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-armel-tizen@sha256:e309f18d07c331ce8f0e0bdea86092187337596828e271d82bb7ed6ac51f5218 env: diff --git a/eng/pipelines/common/templates/runtimes/xplat-job.yml b/eng/pipelines/common/templates/runtimes/xplat-job.yml index 0e09b929828aed..dfd110e3426389 100644 --- a/eng/pipelines/common/templates/runtimes/xplat-job.yml +++ b/eng/pipelines/common/templates/runtimes/xplat-job.yml @@ -57,6 +57,8 @@ jobs: agentOs: Ubuntu ${{ if eq(parameters.osGroup, 'freebsd') }}: agentOs: FreeBSD + ${{ if eq(parameters.osGroup, 'openbsd') }}: + agentOs: OpenBSD ${{ if in(parameters.osGroup, 'osx', 'ios') }}: agentOs: MacOS ${{ if eq(parameters.osGroup, 'windows') }}: diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index cec704cf016402..68c0c0d9aa6b36 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -165,12 +165,12 @@ jobs: # does not work for some reason. pool: # Public Linux Build Pool - ${{ if and(or(in(parameters.osGroup, 'linux', 'freebsd', 'android', 'tizen'), eq(parameters.jobParameters.hostedOs, 'linux')), eq(variables['System.TeamProject'], 'public')) }}: + ${{ if and(or(in(parameters.osGroup, 'linux', 'freebsd', 'openbsd', 'android', 'tizen'), eq(parameters.jobParameters.hostedOs, 'linux')), eq(variables['System.TeamProject'], 'public')) }}: name: $(DncEngPublicBuildPool) demands: ImageOverride -equals build.azurelinux.3.amd64.open # Official Build Linux Pool - ${{ if and(or(in(parameters.osGroup, 'linux', 'freebsd', 'android', 'tizen'), eq(parameters.jobParameters.hostedOs, 'linux')), ne(variables['System.TeamProject'], 'public')) }}: + ${{ if and(or(in(parameters.osGroup, 'linux', 'freebsd', 'openbsd', 'android', 'tizen'), eq(parameters.jobParameters.hostedOs, 'linux')), ne(variables['System.TeamProject'], 'public')) }}: name: $(DncEngInternalBuildPool) demands: ImageOverride -equals build.azurelinux.3.amd64 os: linux diff --git a/eng/pipelines/coreclr/templates/sccache-stats.yml b/eng/pipelines/coreclr/templates/sccache-stats.yml index 6f2d9e4f98ea54..d881dad08e179a 100644 --- a/eng/pipelines/coreclr/templates/sccache-stats.yml +++ b/eng/pipelines/coreclr/templates/sccache-stats.yml @@ -12,7 +12,7 @@ parameters: osSubgroup: '' steps: - - ${{ if and(or(eq(parameters.osGroup, 'linux'), eq(parameters.osGroup, 'freebsd')), or(eq(parameters.archType, 'x64'), eq(parameters.archType, 'arm64'))) }}: + - ${{ if and(or(eq(parameters.osGroup, 'linux'), eq(parameters.osGroup, 'freebsd'), eq(parameters.osGroup, 'openbsd')), or(eq(parameters.archType, 'x64'), eq(parameters.archType, 'arm64'))) }}: - script: sccache --show-stats || true displayName: Sccache stats condition: always() diff --git a/eng/pipelines/coreclr/templates/setup-sccache.yml b/eng/pipelines/coreclr/templates/setup-sccache.yml index 3472ffe296bf34..d15e1953bdb984 100644 --- a/eng/pipelines/coreclr/templates/setup-sccache.yml +++ b/eng/pipelines/coreclr/templates/setup-sccache.yml @@ -15,7 +15,7 @@ parameters: sccacheVersion: '0.15.0' steps: - - ${{ if and(or(eq(parameters.osGroup, 'linux'), eq(parameters.osGroup, 'freebsd')), or(eq(parameters.archType, 'x64'), eq(parameters.archType, 'arm64'))) }}: + - ${{ if and(or(eq(parameters.osGroup, 'linux'), eq(parameters.osGroup, 'freebsd'), eq(parameters.osGroup, 'openbsd')), or(eq(parameters.archType, 'x64'), eq(parameters.archType, 'arm64'))) }}: # Set up the Azure Pipeline Cache for sccache's local cache directory. # Use a rolling key so each build can update the cache; restoreKeys # falls back to the most recent saved entry. diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 77ec17437b8a1e..3491320a2d0581 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -681,6 +681,7 @@ extends: - freebsd_x64 - linux_riscv64 - linux_loongarch64 + - openbsd_x64 jobParameters: testScope: innerloop nameSuffix: CoreCLR_Bootstrapped