summaryrefslogtreecommitdiff
path: root/eng/common/templates/steps/send-to-helix.yml
blob: 03f0e38662982f702e1d5caaa0d9bff3b9b9bee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
parameters:
  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/api/2018-03-14/info/queues for a list of queues
  HelixAccessToken: ''               # required -- access token to make Helix API requests; should be provided by the appropriate variable group
  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
  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
  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                  # optional -- true requires Creator and will make the Mission Control results visible to folks outside the Microsoft Org
  Creator: ''                        # optional -- if the build is external, use this to specify who is sending the job
  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

steps:
  - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
    displayName: Send job to Helix (Windows)
    env:
      BuildConfig: $(_BuildConfig)
      HelixSource: ${{ parameters.HelixSource }}
      HelixType: ${{ parameters.HelixType }}
      HelixBuild: ${{ parameters.HelixBuild }}
      HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
      HelixAccessToken: ${{ parameters.HelixAccessToken }}
      HelixPreCommands: ${{ parameters.HelixPreCommands }}
      HelixPostCommands: ${{ parameters.HelixPostCommands }}
      WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
      WorkItemCommand: ${{ parameters.WorkItemCommand }}
      CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
      XUnitProjects: ${{ parameters.XUnitProjects }}
      XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
      XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
      XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
      IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
      DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
      DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
      EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
      WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
      IsExternal: ${{ parameters.IsExternal }}
      Creator: ${{ parameters.Creator }}
    condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
    continueOnError: ${{ parameters.continueOnError }}
  - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
    displayName: Send job to Helix (Unix)
    env:
      BuildConfig: $(_BuildConfig)
      HelixSource: ${{ parameters.HelixSource }}
      HelixType: ${{ parameters.HelixType }}
      HelixBuild: ${{ parameters.HelixBuild }}
      HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
      HelixAccessToken: ${{ parameters.HelixAccessToken }}
      HelixPreCommands: ${{ parameters.HelixPreCommands }}
      HelixPostCommands: ${{ parameters.HelixPostCommands }}
      WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
      WorkItemCommand: ${{ parameters.WorkItemCommand }}
      CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
      XUnitProjects: ${{ parameters.XUnitProjects }}
      XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
      XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
      XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
      IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
      DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
      DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
      EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }}
      WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
      IsExternal: ${{ parameters.IsExternal }}
      Creator: ${{ parameters.Creator }}
    condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
    continueOnError: ${{ parameters.continueOnError }}