send-to-helix.yml 7.7 KB
Newer Older
1
# Please remember to update the documentation if you make changes to these parameters!
2
parameters:
3 4 5 6 7
  HelixSource: 'pr/default'              # required -- sources must start with pr/, official/, prodcon/, or agent/
  HelixType: 'tests/default/'            # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
  HelixBuild: $(Build.BuildNumber)       # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
  HelixTargetQueues: ''                  # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
  HelixAccessToken: ''                   # required -- access token to make Helix API requests; should be provided by the appropriate variable group
8
  HelixConfiguration: ''                 # optional -- additional property attached to a job
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
  HelixPreCommands: ''                   # optional -- commands to run before Helix work item execution
  HelixPostCommands: ''                  # optional -- commands to run after Helix work item execution
  WorkItemDirectory: ''                  # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
  WorkItemCommand: ''                    # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects
  WorkItemTimeout: ''                    # optional -- a timeout in seconds for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
  CorrelationPayloadDirectory: ''        # optional -- a directory to zip up and send to Helix as a correlation payload
  XUnitProjects: ''                      # optional -- semicolon delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
  XUnitWorkItemTimeout: ''               # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects
  XUnitPublishTargetFramework: ''        # optional -- framework to use to publish your xUnit projects
  XUnitRuntimeTargetFramework: ''        # optional -- framework to use for the xUnit console runner
  XUnitRunnerVersion: ''                 # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects
  IncludeDotNetCli: false                # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion
  DotNetCliPackageType: ''               # optional -- either 'sdk' or 'runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json
  DotNetCliVersion: ''                   # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/master/release-notes/releases.json
  EnableXUnitReporter: false             # optional -- true enables XUnit result reporting to Mission Control
  WaitForWorkItemCompletion: true        # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
  IsExternal: false                      # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
  Creator: ''                            # optional -- if the build is external, use this to specify who is sending the job
27
  DisplayNamePrefix: 'Run Tests'         # optional -- rename the beginning of the displayName of the steps in AzDO 
28 29
  condition: succeeded()                 # optional -- condition for step to execute; defaults to succeeded()
  continueOnError: false                 # optional -- determines whether to continue the build if the step errors; defaults to false
30 31

steps:
32
  - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
33
    displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
34 35 36 37 38
    env:
      BuildConfig: $(_BuildConfig)
      HelixSource: ${{ parameters.HelixSource }}
      HelixType: ${{ parameters.HelixType }}
      HelixBuild: ${{ parameters.HelixBuild }}
39
      HelixConfiguration:  ${{ parameters.HelixConfiguration }}
40 41 42 43 44 45
      HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
      HelixAccessToken: ${{ parameters.HelixAccessToken }}
      HelixPreCommands: ${{ parameters.HelixPreCommands }}
      HelixPostCommands: ${{ parameters.HelixPostCommands }}
      WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
      WorkItemCommand: ${{ parameters.WorkItemCommand }}
46
      WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
47 48
      CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
      XUnitProjects: ${{ parameters.XUnitProjects }}
49
      XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
50 51
      XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
      XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
52 53 54 55 56 57
      XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
      IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
      DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
      DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
      EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
      WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
58
      Creator: ${{ parameters.Creator }}
59
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
60 61
    condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
    continueOnError: ${{ parameters.continueOnError }}
62
  - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
63
    displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
64 65 66 67 68
    env:
      BuildConfig: $(_BuildConfig)
      HelixSource: ${{ parameters.HelixSource }}
      HelixType: ${{ parameters.HelixType }}
      HelixBuild: ${{ parameters.HelixBuild }}
69
      HelixConfiguration:  ${{ parameters.HelixConfiguration }}
70 71 72 73 74 75
      HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
      HelixAccessToken: ${{ parameters.HelixAccessToken }}
      HelixPreCommands: ${{ parameters.HelixPreCommands }}
      HelixPostCommands: ${{ parameters.HelixPostCommands }}
      WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
      WorkItemCommand: ${{ parameters.WorkItemCommand }}
76
      WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
77 78
      CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
      XUnitProjects: ${{ parameters.XUnitProjects }}
79
      XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
80 81
      XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
      XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
82 83 84 85 86 87
      XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
      IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
      DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
      DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
      EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
      WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
88
      Creator: ${{ parameters.Creator }}
89
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
90 91
    condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
    continueOnError: ${{ parameters.continueOnError }}