perf-job.yml 8.4 KB
Newer Older
1 2 3 4
parameters:
  buildConfig: ''
  archType: ''
  osGroup: ''
5
  osSubgroup: ''
6
  container: ''
7
  runtimeVariant: ''
8
  framework: net5.0 # Specify the appropriate framework when running release branches (ie netcoreapp3.0 for release/3.0)
9
  liveLibrariesBuildConfig: ''
10
  variables: {}
11
  runtimeType: 'coreclr'
12
  pool: ''
13
  codeGenType: 'JIT'
O
Olivia Chen 已提交
14 15
  projetFile: ''
  runKind: ''
O
Olivia Chen 已提交
16 17
  runJobTemplate: '/eng/pipelines/coreclr/templates/run-performance-job.yml'
  additionalSetupParameters: ''
18 19 20 21 22 23 24

### Perf job

### Each perf job depends on a corresponding build job with the same
### buildConfig and archType.

jobs:
O
Olivia Chen 已提交
25
- template: ${{ parameters.runJobTemplate }}
26 27
  parameters:
    # Compute job name from template parameters
O
Olivia Chen 已提交
28 29
    jobName: ${{ format('perfbuild_{0}{1}_{2}_{3}_{4}_{5}_{6}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.runtimeType, parameters.codeGenType, parameters.runKind) }}
    displayName: ${{ format('Performance {0}{1} {2} {3} {4} {5} {6}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig, parameters.runtimeType, parameters.codeGenType, parameters.runKind) }}
30
    pool: ${{ parameters.pool }}
31 32
    buildConfig: ${{ parameters.buildConfig }}
    archType: ${{ parameters.archType }}
33
    osGroup: ${{ parameters.osGroup }}
34
    osSubgroup: ${{ parameters.osSubgroup }}
35
    runtimeVariant: ${{ parameters.runtimeVariant }}
D
Drew Scoggins 已提交
36
    liveLibrariesBuildConfig: ${{ parameters.liveLibrariesBuildConfig }}
37
    runtimeType: ${{ parameters.runtimeType }}
38
    codeGenType: ${{ parameters.codeGenType }}
O
Olivia Chen 已提交
39 40
    projectFile: ${{ parameters.projectFile }}
    runKind: ${{ parameters.runKind }}
O
Olivia Chen 已提交
41
    additionalSetupParameters: ${{ parameters.additionalSetupParameters }}
42
    # Test job depends on the corresponding build job
43
    dependsOn:
44
    - ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
45
    - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
46
      - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
47
    - ${{ if eq(parameters.runtimeType, 'mono') }}:
48
      - ${{ format('mono_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
D
Drew Scoggins 已提交
49 50
    - ${{ if eq(parameters.runtimeType, 'wasm') }}:
      - ${{ format('build_{0}{1}_{2}_{3}_{4}', 'Browser', '', 'wasm', parameters.buildConfig, parameters.runtimeType) }}
51

52
    ${{ if eq(parameters.osGroup, 'Windows_NT') }}:
53
      ${{ if eq(parameters.runtimeType, 'mono') }}:
O
Olivia Chen 已提交
54 55
        extraSetupParameters: -Architecture ${{ parameters.archType }} -MonoDotnet $(Build.SourcesDirectory)\.dotnet-mono
      ${{ if eq(parameters.runtimeType, 'coreclr') }}:
56
        extraSetupParameters: -CoreRootDirectory $(Build.SourcesDirectory)\artifacts\tests\coreclr\${{ parameters.osGroup }}.${{ parameters.archType }}.Release\Tests\Core_Root -Architecture ${{ parameters.archType }}
57
    ${{ if ne(parameters.osGroup, 'Windows_NT') }}:
58
      ${{ if eq(parameters.runtimeType, 'mono') }}:
O
Olivia Chen 已提交
59
        extraSetupParameters: --architecture ${{ parameters.archType }} --monodotnet $(Build.SourcesDirectory)/.dotnet-mono
D
Drew Scoggins 已提交
60
      ${{ if eq(parameters.runtimeType, 'wasm') }}:
O
Olivia Chen 已提交
61
        extraSetupParameters: --architecture ${{ parameters.archType }} --wasm $(librariesDownloadDir)/bin/wasm
D
Drew Scoggins 已提交
62
      ${{ if eq(parameters.runtimeType, 'coreclr') }}:
63
        extraSetupParameters: --corerootdirectory $(Build.SourcesDirectory)/artifacts/tests/coreclr/${{ parameters.osGroup }}.${{ parameters.archType }}.Release/Tests/Core_Root --architecture ${{ parameters.archType }}
O
Olivia Chen 已提交
64
    
65
    variables: ${{ parameters.variables }}
66

67 68
    frameworks:
      - ${{ parameters.framework }}
69 70 71
    steps:
    # Extra steps that will be passed to the performance template and run before sending the job to helix (all of which is done in the template)

72 73 74 75 76 77 78 79 80 81
    # 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'

O
Olivia Chen 已提交
82
    # Download coreclr
83
    - template: /eng/pipelines/common/download-artifact-step.yml
84 85 86 87
      parameters:
        unpackFolder: $(buildProductRootFolderPath)
        artifactFileName: '$(buildProductArtifactName)$(archiveExtension)'
        artifactName: '$(buildProductArtifactName)'
O
Olivia Chen 已提交
88
        displayName: 'Coreclr product build'
89

O
Olivia Chen 已提交
90
    # Download mono 
91 92 93 94 95
    - ${{ if eq(parameters.runtimeType, 'mono') }}:
      - template: /eng/pipelines/common/download-artifact-step.yml
        parameters:
          unpackFolder: $(librariesDownloadDir)/bin/mono/$(osGroup).$(archType).$(buildConfigUpper)
          cleanUnpackFolder: false
96 97
          artifactFileName: 'MonoProduct_${{ parameters.runtimeVariant }}_$(osGroup)_$(archType)_$(buildConfig)$(archiveExtension)'
          artifactName: 'MonoProduct_${{ parameters.runtimeVariant }}_$(osGroup)_$(archType)_$(buildConfig)'
98
          displayName: 'Mono runtime'
99

O
Olivia Chen 已提交
100
    # Download wasm
D
Drew Scoggins 已提交
101
    - ${{ if eq(parameters.runtimeType, 'wasm') }}:
O
Olivia Chen 已提交
102 103 104 105 106 107
      - template: /eng/pipelines/common/download-artifact-step.yml
        parameters:
          unpackFolder: $(librariesDownloadDir)/BrowserWasm
          artifactFileName: BrowserWasm.zip
          artifactName: BrowserWasm
          displayName: BrowserWasm
D
Drew Scoggins 已提交
108

O
Olivia Chen 已提交
109
      - script: "mkdir $(librariesDownloadDir)/bin/wasm;unzip -o $(librariesDownloadDir)/BrowserWasm/artifacts/packages/Release/Shipping/Microsoft.NETCore.App.Runtime.browser-wasm.6.0.0-ci.nupkg data/* runtimes/* -d $(librariesDownloadDir)/bin/wasm;cp src/mono/wasm/runtime-test.js $(librariesDownloadDir)/bin/wasm/runtime-test.js;find $(librariesDownloadDir)/bin/wasm -type f -exec chmod 664 {} \\;"
D
Drew Scoggins 已提交
110 111
        displayName: "Create wasm directory (Linux)"

112
    # Create Core_Root
113
    - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg)
114
      displayName: Create Core_Root
115 116
      condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'))

O
Olivia Chen 已提交
117
    # Copy the runtime directory into the testhost folder to include OOBs.
118
    - script: "build.cmd -subset libs.pretest -configuration release -ci -arch $(archType) -testscope innerloop /p:RuntimeArtifactsPath=$(librariesDownloadDir)\\bin\\mono\\$(osGroup).$(archType).$(buildConfigUpper) /p:RuntimeFlavor=mono;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\runtime\\$(_Framework)-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\$(_Framework)-$(osGroup)-$(buildConfigUpper)-$(archType)\\shared\\Microsoft.NETCore.App\\6.0.0 /E /I /Y;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\$(_Framework)-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\.dotnet-mono /E /I /Y;copy $(Build.SourcesDirectory)\\artifacts\\bin\\coreclr\\$(osGroup).$(archType).$(buildConfigUpper)\\corerun.exe $(Build.SourcesDirectory)\\.dotnet-mono\\shared\\Microsoft.NETCore.App\\6.0.0\\corerun.exe"
119 120 121
      displayName: "Create mono dotnet (Windows)"
      condition: and(and(succeeded(), eq(variables.runtimeFlavorName, 'Mono')), eq(variables.osGroup, 'Windows_NT'))

122
    - script: "mkdir $(Build.SourcesDirectory)/.dotnet-mono;./build.sh -subset libs.pretest -configuration release -ci -arch $(archType) -testscope innerloop /p:RuntimeArtifactsPath=$(librariesDownloadDir)/bin/mono/$(osGroup).$(archType).$(buildConfigUpper) /p:RuntimeFlavor=mono;cp $(Build.SourcesDirectory)/artifacts/bin/runtime/$(_Framework)-$(osGroup)-$(buildConfigUpper)-$(archType)/* $(Build.SourcesDirectory)/artifacts/bin/testhost/$(_Framework)-$(osGroup)-$(buildConfigUpper)-$(archType)/shared/Microsoft.NETCore.App/6.0.0 -rf;cp $(Build.SourcesDirectory)/artifacts/bin/testhost/$(_Framework)-$(osGroup)-$(buildConfigUpper)-$(archType)/* $(Build.SourcesDirectory)/.dotnet-mono -r;cp $(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(buildConfigUpper)/corerun $(Build.SourcesDirectory)/.dotnet-mono/shared/Microsoft.NETCore.App/6.0.0/corerun"
123 124
      displayName: "Create mono dotnet (Linux)"
      condition: and(and(succeeded(), eq(variables.runtimeFlavorName, 'Mono')), ne(variables.osGroup, 'Windows_NT'))