<commit_before>
# Temporarily set a build number format that includes a large revision
# number that won't conflict with buildpipeline official builds.
name: $(Date:yyyyMMdd)$(Rev:.7r)

variables:
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true

resources:
  containers:
  - container: ubuntu_1404_arm_cross_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-cross-e435274-20180426002420

  - container: ubuntu_1604_arm64_cross_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180315221921

  - container: musl_x64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247

  - container: musl_arm64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917

  - container: centos7_x64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-d485f41-20173404063424

  - container: centos6_x64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-376e1a3-20174311014331

trigger:
- master

pr:
- master

jobs:

##   The following is the matrix of test runs that we have. This is
##   duplicated for each os/arch 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
##           |                \----------------> 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
## base.yml job template, which sets up telemetry and signing support.

## azure-pipelines.yml -> platform-matrix.yml -------> build-job.yml -------> xplat-job.yml -> base.yml
##                                            |  (passed-in jobTemplate)  |                    (arcade)
##                                            \------> test-job.yml ------/

# TODO: simplify logic surrounding official build/ci. See
# https://github.com/Microsoft/azure-pipelines-yaml/pull/46 for more information

#
# Debug build (Pull request)
#
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: debug

#
# Checked build
#
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: checked
      ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
        platforms:
        - Linux_arm
        - Linux_arm64
        - Linux_x64
        - Windows_NT_x64
        - Windows_NT_x86

#
# Release build (Pull request)
#
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: release

#
# Release build (Official build)
#
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: release
      jobParameters:
        # Publishing packages to blob feeds sometimes takes a long time
        # due to waiting for an exclusive lock on the feed.
        # See https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/AsyncPublishing.md
        timeoutInMinutes: 120

#
# Checked test builds
#

# The jobs that can be triggered in PR, manually from ADO and that are scheduled
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest', 'Manual', 'Schedule')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: checked
      ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
        platforms:
        - Linux_arm
        - Linux_arm64
        - Linux_x64
        - Windows_NT_x64
        - Windows_NT_x86
      jobParameters:
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-ci') }}:
          testGroup: innerloop
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop') }}:
          testGroup: outerloop
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitminopts-jitstress1-jitstress2') }}:
          testGroup: outerloop-jitminopts-jitstress1-jitstress2
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitstressregs') }}:
          testGroup: outerloop-jitstressregs
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitstress2-jitstressregs') }}:
          testGroup: outerloop-jitstress2-jitstressregs
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
          testGroup: outerloop-gcstress0x3-gcstress0xc

# CI
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: checked
      jobParameters:
        testGroup: outerloop

  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: checked
      jobParameters:
        readyToRun: true
        testGroup: outerloop

#
# Release test builds
#

# Official build
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: release
      jobParameters:
        testGroup: outerloop

  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: release
      jobParameters:
        testGroup: outerloop
        readyToRun: true
<commit_msg>Add coreclr-ci (Test Pri0 Linux_musl x64 release)<commit_after>
# Temporarily set a build number format that includes a large revision
# number that won't conflict with buildpipeline official builds.
name: $(Date:yyyyMMdd)$(Rev:.7r)

variables:
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true

resources:
  containers:
  - container: ubuntu_1404_arm_cross_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-cross-e435274-20180426002420

  - container: ubuntu_1604_arm64_cross_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180315221921

  - container: musl_x64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.6-WithNode-f4d3fe3-20181220200247

  - container: musl_arm64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917

  - container: centos7_x64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-d485f41-20173404063424

  - container: centos6_x64_build_image
    image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-376e1a3-20174311014331

trigger:
- master

pr:
- master

jobs:

##   The following is the matrix of test runs that we have. This is
##   duplicated for each os/arch 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
##           |                \----------------> 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
## base.yml job template, which sets up telemetry and signing support.

## azure-pipelines.yml -> platform-matrix.yml -------> build-job.yml -------> xplat-job.yml -> base.yml
##                                            |  (passed-in jobTemplate)  |                    (arcade)
##                                            \------> test-job.yml ------/

# TODO: simplify logic surrounding official build/ci. See
# https://github.com/Microsoft/azure-pipelines-yaml/pull/46 for more information

#
# Debug build (Pull request)
#
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: debug

#
# Checked build
#
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: checked
      ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
        platforms:
        - Linux_arm
        - Linux_arm64
        - Linux_x64
        - Windows_NT_x64
        - Windows_NT_x86

#
# Release build (Pull request)
#
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: release

#
# Release build (Official build)
#
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: build-job.yml
      buildConfig: release
      jobParameters:
        # Publishing packages to blob feeds sometimes takes a long time
        # due to waiting for an exclusive lock on the feed.
        # See https://github.com/dotnet/arcade/blob/master/Documentation/CorePackages/AsyncPublishing.md
        timeoutInMinutes: 120

#
# Checked test builds
#

# The jobs that can be triggered in PR, manually from ADO and that are scheduled
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest', 'Manual', 'Schedule')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: checked
      ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
        platforms:
        - Linux_arm
        - Linux_arm64
        - Linux_x64
        - Windows_NT_x64
        - Windows_NT_x86
      jobParameters:
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-ci') }}:
          testGroup: innerloop
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop') }}:
          testGroup: outerloop
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitminopts-jitstress1-jitstress2') }}:
          testGroup: outerloop-jitminopts-jitstress1-jitstress2
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitstressregs') }}:
          testGroup: outerloop-jitstressregs
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-jitstress2-jitstressregs') }}:
          testGroup: outerloop-jitstress2-jitstressregs
        ${{ if eq(variables['Build.DefinitionName'], 'coreclr-outerloop-gcstress0x3-gcstress0xc') }}:
          testGroup: outerloop-gcstress0x3-gcstress0xc

# CI
- ${{ if and(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: checked
      jobParameters:
        testGroup: outerloop

  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: checked
      jobParameters:
        readyToRun: true
        testGroup: outerloop

#
# Release test builds
#

# Pull-Request test
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.DefinitionName'], 'coreclr-ci')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: release
      platforms:
      - Linux_x64_musl
      jobParameters:
        testGroup: innerloop

# Official test
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}:
  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: release
      jobParameters:
        testGroup: outerloop

  - template: eng/platform-matrix.yml
    parameters:
      jobTemplate: test-job.yml
      buildConfig: release
      jobParameters:
        testGroup: outerloop
        readyToRun: true

{'fraction_non_alphanumeric': 0.15053025577043044, 'fraction_numerical': 0.024391765439800376, 'mean_word_length': 2.6642285714285716, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 45, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 14, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3905057', 'n_tokens_mistral': 5055, 'n_tokens_neox': 4622, 'n_words': 1093}