mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-09 09:34:49 +09:00

* Build all managed coreclr tests on OSX in CI (#36253) Remove concept of targetGeneric and targetSpecific Add OSX corelcr managed tests builds to all pipes Remove all other platform coreclr managed test build Remove property `TestUnsupportedOutsideWindows` Rename conditional `DisableProjectBuild` to `CLRTestTargetUnsupported` Refactor tests to allow all managed tests to be built on OSX. Split managed tests which based on target properties conditionally: + `<Compile Include/>` + `<DefineConstant/>` This creates a separate test for each target configuration permutation. Add `<CLRTestTargetUnsupported/>` conditions to select these at build and/or run time Append split tests with `_Target*` to identify intended test target For tests which depend on target specific internal details od System.Private.Corlib, expose a dummy implementation for unsupported targets. Clean up Remove <TraitTags/> Remove <CLRTestNeedTarget/> Remove managedOSXBuild Remove managedTestBuildOsGroup Remove managedTestBuildOsSubGroup Use issues.target to disable expected failures Some tests are configured to run on a targets with specific charecteristics. Use issues.targets to conditionally disable tests not intended to run on all targets. * Setup pr and batch runs for dev/infrsatructure (#36218) (#36299) Co-authored-by: Jarret Shook <jashoo@microsoft.com> * Add alias CoreClrTestBuildHost (#36256) * Add alias CoreClrTestBuildHost Intended to allow easy switching of test build host between OSX_x64 & Linux_x64 depending on availablility and reliability. * Add missing issues.targets from #36253 (#36351) * Add missing issues.targets from #36253 PR #36253 enabled building all tests on OSX. It was intended to include this list of tests to disable on unsupported platforms. This was dropped as part of rebasing for dev/infra branch. Lack of CI on dev/infra allowed this to be missed. * Revise issues.targets * Add src/coreclr/tests/src/baseservices/typeequivalence/simple * Remove #if Windows from DllImportPathTest * Build scripts while copying native binaries (#36482) * Build scripts while copying native binaries Stop building test scripts during the managed build phase Build after copying the native targets Fixes issues relative to building scripts on OSX * Fix superpmi script generation * Cleanup issues.targets * Keep 6 failing IJW tests * Fix IJW when managed tests are built on OSX (#36711) * Fix IJW when managed tests are built on OSX - Refactor Interop.setting.targets to Directory.Build.{targets,props} - Remove include Interop.setting.targets from interop projects rely on SDK including Directory.Build.* automatically - Add new CopyInteropNativeRuntimeDependencies target for copying IJW dependencies * Add <Copy/> task - Delete obsolete instruction in Interop/ReadMe.md * Cleanup Readme.md * Optional stress dependencies & don't populate CORE_ROOT twice (#36851) Bruce noticed that we're downloading and installing stress runtime dependencies several times during build. I have added a new option to suppress this behavior in build-test and I fixed the invocations of build-test based on Bruce's analysis. I have also patched the build scripts to avoid populating CORE_ROOT in "copynativeonly" mode. Thanks Tomas Fixes: #36797 * Build test scripts whenever CopyNativeProjectBinaries builds (#37028) * Fix pri0 test build. * Clean pri1 test build (#37266) * Clean pri1 test build * Undo testing comment * Make sure weakreferencetest does not run on unix * Fixup WinRT proj * Fix path Co-authored-by: Steve MacLean <Steve.MacLean@microsoft.com> Co-authored-by: Tomáš Rylek <trylek@microsoft.com> Co-authored-by: Santiago Fernandez Madero <safern@microsoft.com> Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Andy Ayers <andya@microsoft.com> Co-authored-by: Adeel Mujahid <adeelbm@outlook.com> Co-authored-by: Ganbarukamo41 <ganbarukamo@gmail.com> Co-authored-by: monojenkins <jo.shields+jenkins@xamarin.com> Co-authored-by: thaystg <thaystg@users.noreply.github.com> Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com> Co-authored-by: Aaron Robinson <arobins@microsoft.com> Co-authored-by: Kevin Jones <kevin@vcsjones.com> Co-authored-by: Jeremy Barton <jbarton@microsoft.com> Co-authored-by: Egor Bogatov <egorbo@gmail.com> Co-authored-by: Simon Nattress <nattress@gmail.com> Co-authored-by: Aleksey Kliger (λgeek) <alklig@microsoft.com> Co-authored-by: Krzysztof Wicher <kwicher@microsoft.com> Co-authored-by: Kunal Pathak <Kunal.Pathak@microsoft.com> Co-authored-by: Carol Eidt <carol.eidt@microsoft.com> Co-authored-by: Shimmy <2716316+weitzhandler@users.noreply.github.com> Co-authored-by: Stephen Toub <stoub@microsoft.com> Co-authored-by: Layomi Akinrinade <laakinri@microsoft.com> Co-authored-by: Dan Moseley <danmose@microsoft.com> Co-authored-by: Eirik Tsarpalis <eirik.tsarpalis@gmail.com> Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com> Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com> Co-authored-by: Alexander Chermyanin <flamencist@mail.ru> Co-authored-by: Miha Zupan <mihazupan.zupan1@gmail.com> Co-authored-by: Sergey Andreenko <seandree@microsoft.com> Co-authored-by: Nikola Milosavljevic <nikolam@microsoft.com> Co-authored-by: Steve Pfister <steveisok@users.noreply.github.com> Co-authored-by: David Wrighton <davidwr@microsoft.com> Co-authored-by: buyaa-n <bunamnan@microsoft.com> Co-authored-by: Krzysztof Wicher <mordotymoja@gmail.com> Co-authored-by: Vladimir Sadov <vsadov@microsoft.com> Co-authored-by: Leandro Pereira <leandro.pereira@microsoft.com> Co-authored-by: Swaroop Sridhar <swaroop.sridhar@microsoft.com> Co-authored-by: Marie Píchová <11718369+ManickaP@users.noreply.github.com> Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com> Co-authored-by: Manish Godse <61718172+mangod9@users.noreply.github.com> Co-authored-by: Bruce Forstall <brucefo@microsoft.com> Co-authored-by: Alexis Christoforides <alexis@thenull.net> Co-authored-by: BrzVlad <BrzVlad@users.noreply.github.com> Co-authored-by: Alfred Myers <git@alfredmyers.com> Co-authored-by: Nick Craver <nrcraver@gmail.com> Co-authored-by: Nathan Ricci <naricc@microsoft.com> Co-authored-by: Thays Grazia <thaystg@gmail.com> Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com> Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com> Co-authored-by: Jo Shields <directhex@apebox.org> Co-authored-by: Jan Vorlicek <janvorli@microsoft.com> Co-authored-by: Anirudh Agnihotry <anirudhagnihotry098@gmail.com> Co-authored-by: Roman Marusyk <Marusyk@users.noreply.github.com> Co-authored-by: Zoltan Varga <vargaz@gmail.com> Co-authored-by: Youssef Victor <31348972+Youssef1313@users.noreply.github.com> Co-authored-by: Ben Adams <thundercat@illyriad.co.uk> Co-authored-by: Marek Safar <marek.safar@gmail.com> Co-authored-by: Anton Lapounov <antonl@microsoft.com> Co-authored-by: AraHaan <15173749+AraHaan@users.noreply.github.com> Co-authored-by: Tom Deseyn <tom.deseyn@gmail.com> Co-authored-by: Tomas Weinfurt <tweinfurt@yahoo.com> Co-authored-by: Tomas Weinfurt <furt@Shining.local> Co-authored-by: David Cantu <dacantu@microsoft.com> Co-authored-by: Sung Yoon Whang <suwhang@microsoft.com> Co-authored-by: Levi Broderick <GrabYourPitchforks@users.noreply.github.com> Co-authored-by: vargaz <vargaz@users.noreply.github.com> Co-authored-by: David Mason <davmason@microsoft.com> Co-authored-by: UnityAlex <UnityAlex@users.noreply.github.com> Co-authored-by: Fan Yang <52458914+fanyang-mono@users.noreply.github.com> Co-authored-by: Tanner Gooding <tagoo@outlook.com> Co-authored-by: Egor Chesakov <Egor.Chesakov@microsoft.com> Co-authored-by: radical <radical@users.noreply.github.com> Co-authored-by: Ivan Diaz Sanchez <ivdiazsa@microsoft.com> Co-authored-by: Gleb Balykov <g.balykov@samsung.com> Co-authored-by: Honza Rameš <ramejan@gmail.com> Co-authored-by: Eric StJohn <ericstj@microsoft.com> Co-authored-by: Ivan <ivanbuha@outlook.com> Co-authored-by: Ryan Lucia <rylucia@microsoft.com> Co-authored-by: SRV <roman.sakno@gmail.com> Co-authored-by: Clinton Ingram <clinton.ingram@outlook.com> Co-authored-by: Mikhail Pilin <ww898@users.noreply.github.com> Co-authored-by: Jan Kotas <jkotas@microsoft.com> Co-authored-by: w-flo <w-flo@users.noreply.github.com> Co-authored-by: Peter Sollich <petersol@microsoft.com> Co-authored-by: grendello <grendello@users.noreply.github.com> Co-authored-by: Johan Lorensson <lateralusx.github@gmail.com> Co-authored-by: Erhan Atesoglu <47518605+eanova@users.noreply.github.com> Co-authored-by: Matt Mitchell <mmitche@microsoft.com> Co-authored-by: Josh Schreuder <joshschreuder@gmail.com> Co-authored-by: Josh Schreuder <josh.schreuder@gmail.com> Co-authored-by: Andrew Au <andrewau@microsoft.com> Co-authored-by: Eugene Rozenfeld <erozen@microsoft.com> Co-authored-by: Vlad Brezae <brezaevlad@gmail.com> Co-authored-by: Kenneth Pouncey <kjpou@pt.lu> Co-authored-by: Kirill Frolov <k.frolov@samsung.com> Co-authored-by: Tomas Weinfurt <furt@DESKTOP-0J9757E.corp.microsoft.com>
160 lines
6.9 KiB
YAML
160 lines
6.9 KiB
YAML
parameters:
|
|
buildConfig: ''
|
|
archType: ''
|
|
osGroup: ''
|
|
osSubgroup: ''
|
|
container: ''
|
|
testGroup: ''
|
|
liveRuntimeBuildConfig: ''
|
|
|
|
# When set to a non-empty value (Debug / Release), it determines libraries
|
|
# build configuration to use for the tests. Setting this property implies
|
|
# a dependency of this job on the appropriate libraries build and is used
|
|
# to construct the name of the Azure artifact representing libraries build
|
|
# to use for building the tests.
|
|
liveLibrariesBuildConfig: ''
|
|
|
|
displayNameArgs: ''
|
|
condition: true
|
|
stagedBuild: false
|
|
variables: {}
|
|
pool: ''
|
|
runtimeFlavor: 'coreclr'
|
|
runtimeFlavorDisplayName: 'CoreCLR'
|
|
runtimeVariant: ''
|
|
|
|
### Build managed test components (native components are getting built as part
|
|
### of the the product build job).
|
|
|
|
### TODO: As of today, build of managed test components requires the product build
|
|
### as a prerequisite due to dependency on System.Private.Corelib. After switching
|
|
### over to its reference assembly we should be able to remove this dependency and
|
|
### run managed test builds in parallel with the product build job.
|
|
|
|
|
|
jobs:
|
|
- template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml
|
|
parameters:
|
|
buildConfig: ${{ parameters.buildConfig }}
|
|
archType: ${{ parameters.archType }}
|
|
osGroup: ${{ parameters.osGroup }}
|
|
osSubgroup: ${{ parameters.osSubgroup }}
|
|
container: ${{ parameters.container }}
|
|
runtimeVariant: ${{ parameters.runtimeVariant }}
|
|
testGroup: ${{ parameters.testGroup }}
|
|
stagedBuild: ${{ parameters.stagedBuild }}
|
|
liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
|
|
variables: ${{ parameters.variables }}
|
|
pool: ${{ parameters.pool }}
|
|
|
|
# Test jobs should continue on error for internal builds
|
|
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
|
continueOnError: true
|
|
|
|
# Compute job name from template parameters
|
|
${{ if eq(parameters.testGroup, 'innerloop') }}:
|
|
name: '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{ parameters.buildConfig }}'
|
|
displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri0 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }}'
|
|
${{ if ne(parameters.testGroup, 'innerloop') }}:
|
|
name: '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{ parameters.buildConfig }}'
|
|
displayName: '${{ parameters.runtimeFlavorDisplayName }} Common Pri1 Test Build AnyOS AnyCPU ${{ parameters.buildConfig }}'
|
|
|
|
# Since the condition is being altered, merge the default with the additional conditions.
|
|
# See https://docs.microsoft.com/azure/devops/pipelines/process/conditions
|
|
condition: and(succeeded(), ${{ parameters.condition }})
|
|
|
|
# TODO: Build of managed test components currently depends on the corresponding build job
|
|
# because it needs System.Private.Corelib; we should be able to remove this dependency
|
|
# by switching over to using reference assembly.
|
|
${{ if ne(parameters.stagedBuild, true) }}:
|
|
dependsOn:
|
|
- ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, coalesce(parameters.liveRuntimeBuildConfig, parameters.buildConfig)) }}
|
|
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
|
|
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
|
|
|
|
|
|
${{ if eq(parameters.testGroup, 'innerloop') }}:
|
|
timeoutInMinutes: 90
|
|
|
|
${{ if ne(parameters.testGroup, 'innerloop') }}:
|
|
timeoutInMinutes: 160
|
|
|
|
steps:
|
|
|
|
# Install test build dependencies
|
|
- ${{ if eq(parameters.osGroup, 'OSX') }}:
|
|
- script: $(Build.SourcesDirectory)/eng/install-native-dependencies.sh $(osGroup)
|
|
displayName: Install native dependencies
|
|
- ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
|
|
# Necessary to install correct cmake version
|
|
- script: $(Build.SourcesDirectory)\eng\common\init-tools-native.cmd -InstallDirectory $(Build.SourcesDirectory)\native-tools -Force
|
|
displayName: Install native dependencies
|
|
|
|
|
|
# Optionally download live-built libraries
|
|
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
|
|
- template: /eng/pipelines/common/download-artifact-step.yml
|
|
parameters:
|
|
unpackFolder: $(librariesDownloadDir)
|
|
cleanUnpackFolder: false
|
|
artifactFileName: '$(librariesBuildArtifactName)$(archiveExtension)'
|
|
artifactName: '$(librariesBuildArtifactName)'
|
|
displayName: 'live-built libraries'
|
|
|
|
# We need to explictly download CoreCLR, even if building Mono because the CoreCLR tests depend on it
|
|
- template: /eng/pipelines/common/download-artifact-step.yml
|
|
parameters:
|
|
unpackFolder: $(coreClrProductRootFolderPath)
|
|
artifactFileName: '$(coreClrProductArtifactName)$(archiveExtension)'
|
|
artifactName: '$(coreClrProductArtifactName)'
|
|
displayName: 'CoreCLR product build'
|
|
|
|
- ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}:
|
|
- script: |
|
|
du -sh $(Build.SourcesDirectory)/*
|
|
df -h
|
|
displayName: Disk Usage before Build
|
|
|
|
# Build managed test components
|
|
- script: $(coreClrRepoRootDir)build-test$(scriptExt) allTargets skipstressdependencies skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg)
|
|
displayName: Build managed test components
|
|
|
|
- ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}:
|
|
- script: |
|
|
du -sh $(Build.SourcesDirectory)/*
|
|
df -h
|
|
displayName: Disk Usage after Build
|
|
|
|
# Zip and publish managed test components
|
|
- template: /eng/pipelines/common/upload-artifact-step.yml
|
|
parameters:
|
|
rootFolder: $(managedTestArtifactRootFolderPath)
|
|
includeRootFolder: false
|
|
archiveExtension: '.tar.gz'
|
|
archiveType: tar
|
|
tarCompression: gz
|
|
artifactName: $(managedGenericTestArtifactName)
|
|
displayName: 'managed test components (generic)'
|
|
|
|
|
|
# Publish .packages/microsoft.net.sdk.il needed for traversing
|
|
# test projects during the copynativeonly command in run test job.
|
|
- template: /eng/pipelines/common/upload-artifact-step.yml
|
|
parameters:
|
|
rootFolder: $(microsoftNetSdkIlFolderPath)
|
|
includeRootFolder: false
|
|
archiveType: tar
|
|
tarCompression: gz
|
|
archiveExtension: '.tar.gz'
|
|
artifactName: $(microsoftNetSdkIlArtifactName)
|
|
displayName: 'Microsoft.NET.Sdk.IL package'
|
|
|
|
|
|
# Publish Logs
|
|
- task: PublishPipelineArtifact@1
|
|
displayName: Publish Logs
|
|
inputs:
|
|
targetPath: $(Build.SourcesDirectory)/artifacts/log
|
|
artifactName: '${{ parameters.runtimeFlavor }}_Common_Runtime_TestBuildLogs_AnyOS_AnyCPU_$(buildConfig)_Lib${{ parameters.liveLibrariesBuildConfig }}_${{ parameters.testGroup }}'
|
|
continueOnError: true
|
|
condition: always()
|