Skip to content

Files

Latest commit

6e48e91 · Aug 27, 2019

History

History

eng

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Aug 26, 2019
Aug 15, 2019
Aug 22, 2019
Aug 27, 2019
Aug 10, 2019
Aug 26, 2019
May 31, 2019
Aug 10, 2019
Jun 20, 2019
Jun 11, 2019
Mar 12, 2019
Aug 24, 2019
Aug 24, 2019
Aug 12, 2019
Aug 26, 2019
Jun 12, 2019
Aug 27, 2019
Mar 2, 2019
Aug 26, 2019
Aug 12, 2019
Aug 26, 2019

CoreCLR build infrastructure

Azure Pipelines

The following is the matrix of test runs that we have. This is duplicated for each OS/architecture (e.g linux-x64) combination in platform-matrix.yml.

   Product build       Test build              Test run
   (Azure DevOps)      (Azure DevOps)          (helix)

   --------------------------------------------------------------------------

   Debug

   Checked ----------> Pri0 -----------------> plain runtests
           |
           \---------> Pri1 -----------------> plain runtests
           |                \----------------> jitstress
           |                \----------------> gcstress
           |                \----------------> runincontext
           |                \----------------> maybe more (dynamically selected runtest modes)
           |
           \---------> Pri1 crossgen --------> plain runtests
                                     \-------> jitstress
                                     \-------> gcstress
                                     \-------> maybe more (dynamically selected runtest modes)

   Release ----------> Pri1 -----------------> plain runtests
           |
           \---------> Pri1 crossgen --------> plain runtests

Each build or test job is defined in Azure DevOps and will show up in the UI in the order in which they are defined here. The build and test build job matrix is defined statically, but queue-time inputs can be used to control whether a job executes (used to select which jobs run in ci vs for official builds), or to select test modes. This should eventually be used to enable requesting specific test runs from pull requests.

Templates used to define jobs

Please update this if the factoring changes.

This file defines the set of jobs in a platform-agnostic manner, using the platform-matrix.yml template. This will create one job for each platform from the passed-in jobTemplate (either a build job or a test job). The build-job.yml and test-job.yml templates use xplat-job.yml to handle some of the common logic for abstracting over platforms. Finally, xplat-job.yml uses the arcade job.yml job template, which sets up telemetry and signing support.

internal.yml -> platform-matrix.yml -------> build-job.yml -------> xplat-job.yml -> job.yml
                                    |  (passed-in jobTemplate)  |                    (arcade)
                                    \------> test-job.yml ------/
                                    \------> format-job.yml ----/