Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helix proof of concept for unit tests #224

Merged
merged 95 commits into from
Mar 8, 2019
Merged
Show file tree
Hide file tree
Changes from 93 commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
6300d42
added functests project, added tests to open WinformsControlsTest tabs
zsd4yr Nov 27, 2018
80679a9
sdk magic .tests
zsd4yr Nov 27, 2018
d78d7e5
change to set environment variable before process start
zsd4yr Nov 28, 2018
7965f0c
nit
zsd4yr Nov 28, 2018
d8c0f44
yeah pair programming!
zsd4yr Nov 28, 2018
6feb911
please work tho
zsd4yr Nov 29, 2018
491809a
Set yaml debug to true to help troubleshoot
AdamYoblick Nov 29, 2018
5d54a79
why
zsd4yr Nov 29, 2018
cbdea61
shot in the dark but sure
zsd4yr Nov 29, 2018
ae4f6d6
even better, this time with feeling!
zsd4yr Nov 29, 2018
782b668
docs
zsd4yr Nov 29, 2018
8713166
changed func test config to debug and add 5 minute timeout to build s…
AdamYoblick Nov 29, 2018
2a08804
renaming folder structure to match csproj name
zsd4yr Nov 29, 2018
88f2af9
left this change behind
zsd4yr Nov 29, 2018
92bcf59
debugging in yaml
AdamYoblick Nov 30, 2018
4676862
testing
AdamYoblick Nov 30, 2018
4e60f0a
print out all env vars for debugging
AdamYoblick Nov 30, 2018
285cec4
adding helix steps
AdamYoblick Nov 30, 2018
4b78c5a
readd func tests proj to sln
zsd4yr Dec 7, 2018
5105634
Merge branch 'master' into dev/zadanz/functional_xunit
AdamYoblick Dec 7, 2018
304a181
Comment out func tests that are failing for now
AdamYoblick Dec 7, 2018
85302d7
change to agentPool that has agent running in interactive mode to sup…
AdamYoblick Dec 7, 2018
6ac7fb7
re-enable unit tests on the machine and disable helix for now
AdamYoblick Dec 10, 2018
7d93112
initial try of unit tests through helix
AdamYoblick Dec 10, 2018
aec20f5
Merge branch 'master' into dev/advolker/helix
AdamYoblick Dec 10, 2018
0b63f18
specify a dotnet cli version to use on helix machines
AdamYoblick Dec 10, 2018
999a276
specify a dotnet cli version to use on helix machines
AdamYoblick Dec 10, 2018
576178d
Merge branch 'dev/advolker/helix' of https://github.com/dotnet/winfor…
AdamYoblick Dec 10, 2018
5ccec95
Added helix sdk to global.json
AdamYoblick Dec 10, 2018
d76c67e
move sdk version back because of unrelated breaks
AdamYoblick Dec 10, 2018
ccb81de
specify the dotnetcli version again
AdamYoblick Dec 10, 2018
bba1040
Revving dotnet sdk, fixing build errors
AdamYoblick Dec 10, 2018
e1de8c7
make helix sdk = arcade sdk
AdamYoblick Dec 10, 2018
5f0e35c
saving for real this time
AdamYoblick Dec 10, 2018
86a55df
revert sdk code fixes
AdamYoblick Dec 10, 2018
a4ad3c7
use new and improved helix template
AdamYoblick Dec 10, 2018
3e90fcf
fixing yaml syntax error
AdamYoblick Dec 10, 2018
d534d8f
use proper public sdk version
AdamYoblick Dec 10, 2018
548dd25
specify xunit target framework to netcoreapp3.0
AdamYoblick Dec 10, 2018
028a605
merged from master
AdamYoblick Dec 11, 2018
1837a4c
fixed typo
AdamYoblick Dec 11, 2018
7ac7875
manually consume new arcade helix template because the arcade build i…
AdamYoblick Dec 11, 2018
0aa3dc5
use win8 helix pools because win10 pools aren't ready for us yet
AdamYoblick Dec 11, 2018
2f62ee5
hopefully a fix for the different build versions
zsd4yr Dec 11, 2018
b33b41b
Revert "hopefully a fix for the different build versions"
zsd4yr Dec 11, 2018
63f1cc0
Merge branch 'master' into dev/advolker/helix
AdamYoblick Dec 11, 2018
a15d338
Merge branch 'master' into dev/advolker/helix
AdamYoblick Dec 11, 2018
769b922
merged from master
AdamYoblick Dec 12, 2018
5df3114
really merged from master
AdamYoblick Dec 12, 2018
fdb412e
fixed arcade sdk version
AdamYoblick Dec 12, 2018
08ef95a
fix xunit runtime framework version
AdamYoblick Dec 12, 2018
81e7b7b
merge from master, resolve conflicts
zsd4yr Mar 4, 2019
617ff2e
xunit versions
zsd4yr Mar 4, 2019
f77b2fe
broke sln
zsd4yr Mar 4, 2019
058f73c
headers required
zsd4yr Mar 4, 2019
f164c96
helix token only for internal
zsd4yr Mar 4, 2019
37808b3
require Creator
zsd4yr Mar 4, 2019
b210d44
remove doubel source, this explains the need for headers earlier, als…
zsd4yr Mar 4, 2019
7b54cfd
need helixRepo
zsd4yr Mar 4, 2019
51df9f5
displayName
zsd4yr Mar 4, 2019
e1cf65b
parameters
zsd4yr Mar 4, 2019
6afb86a
parameterization
zsd4yr Mar 4, 2019
566bea6
back to 10?
zsd4yr Mar 4, 2019
c10e9fe
try to wildcard all the tests
zsd4yr Mar 5, 2019
6264dfe
fix folder structure of System.Windows.Forms.Design to match other bi…
zsd4yr Mar 5, 2019
de315ff
Enable XUnitReporter
zsd4yr Mar 5, 2019
fd5eebe
let me make sure about this
zsd4yr Mar 5, 2019
a07c03e
/
zsd4yr Mar 5, 2019
ba4c5f1
whack not slack
zsd4yr Mar 5, 2019
f97d3f1
src
zsd4yr Mar 5, 2019
a28440c
Merge branch 'master' into dev/advolker/helix
zsd4yr Mar 5, 2019
9cdcfab
try this
zsd4yr Mar 5, 2019
7ce198d
Merge branch 'dev/advolker/helix' of https://github.com/dotnet/winfor…
zsd4yr Mar 5, 2019
9049663
include moq and stafact in all of these
zsd4yr Mar 5, 2019
bcaacdb
SYSTEM_ACCESSTOKEN
zsd4yr Mar 5, 2019
dac6d40
make changes to send-to-helix matching arcade#2171
zsd4yr Mar 5, 2019
43ead2d
get rid of func folder dup; add integration tests helix call
zsd4yr Mar 5, 2019
b0e73c0
remove set of environment variable DOTNET_PATH from TestHelpers
zsd4yr Mar 5, 2019
1462fdd
include WinformsControlsTest in project references for IntegrationTes…
zsd4yr Mar 5, 2019
5374f4f
try setting xUnitVersion
zsd4yr Mar 5, 2019
2141f2f
add XUnitAssertVersion, XUnitRunnerVisualStudioVersion, and make all …
zsd4yr Mar 5, 2019
f2f6a18
add more xunit depenencies
zsd4yr Mar 6, 2019
0132f19
merge master
zsd4yr Mar 6, 2019
545a08d
update tools from Arcade
zsd4yr Mar 6, 2019
9936e7b
add back DOTNET_ROOT
zsd4yr Mar 6, 2019
cbed7e8
rename _HelixAgentPool variable, add WinformsControlsTest to project …
zsd4yr Mar 6, 2019
f8b6032
run integration tests on helix and change slashed for paths
zsd4yr Mar 6, 2019
c5599d0
relative path for design was wrong?
zsd4yr Mar 6, 2019
b79237a
do not run integration tests on helix yet
zsd4yr Mar 6, 2019
ee9de87
additional yml
zsd4yr Mar 6, 2019
53c2de3
fix name errors
zsd4yr Mar 6, 2019
d5a444e
rename, add naming
zsd4yr Mar 6, 2019
d716c3c
Merge branch 'master' into dev/advolker/helix
zsd4yr Mar 7, 2019
a47fff8
merge from master
zsd4yr Mar 7, 2019
ab79587
helix type
zsd4yr Mar 7, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Winforms.sln
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Forms.Design
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Forms.Design.Editors.Tests", "src\System.Windows.Forms.Design.Editors\tests\UnitTests\System.Windows.Forms.Design.Editors.Tests.csproj", "{27F24D0C-5F0A-472E-AE12-98B386A13D50}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Forms.Design.Tests", "src\System.Windows.Forms.Design\tests\System.Windows.Forms.Design.Tests.csproj", "{F977CA8C-FBF9-4D82-80BA-FE5B2F33486E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Forms.Design.Tests", "src\System.Windows.Forms.Design\tests\UnitTests\System.Windows.Forms.Design.Tests.csproj", "{F977CA8C-FBF9-4D82-80BA-FE5B2F33486E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Windows.Forms.Design", "src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj", "{61D06BBD-B0CF-4CE1-9139-1CC4B82F0F9B}"
EndProject
Expand Down
4 changes: 4 additions & 0 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,9 @@ Note: if the Uri is a new place, you will need to add a subscription from that p
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>1d2edb248bc2dc37fa0669053b0c88f3bffffb26</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="2.0.0-beta.19156.20">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>b94a591377451bda3ac80e597d7faff03a06c29e</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
12 changes: 10 additions & 2 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,18 @@
<MicrosoftDotNetGenFacadesPackageVersion>1.0.0-beta.19156.20</MicrosoftDotNetGenFacadesPackageVersion>
<MicrosoftDotNetXUnitExtensionsPackageVersion>2.4.0-beta.19156.20</MicrosoftDotNetXUnitExtensionsPackageVersion>
</PropertyGroup>
<!-- Additional dependencies -->
<!-- XUnit-related unchanging dependencies -->
<PropertyGroup>
<AccessibilityPackageVersion>4.6.0-alpha-27122-5</AccessibilityPackageVersion>
<XUnitVersion>2.4.1-pre.build.4059</XUnitVersion>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With java applications we usually had a separate file to keep the version numbers that we are depending on in one place. Is it a best practice in dotnet apps as well? Can we move the dependencies version number into one place. I know it’s complitaced because of the different usage and file formats and all, just it would be nice to have dotner version, dotnet path, helix version, dotnet arcade version, xunit version, etc all in one place possibly grouped by what is using them, build, test, unit test, etc. Do es it makes sense?
I have no idea how hard it would be to do it? Would it worth it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unfortunately, the yml files are the very first files run on the CI so build-time variables are not available yet, and for local builds these yml files are not run at all. I do not think there is a great place for them all.

<XUnitAssertVersion>$(XUnitVersion)</XUnitAssertVersion>
<XUnitRunnerConsoleVersion>$(XUnitVersion)</XUnitRunnerConsoleVersion>
<XUnitRunnerVisualStudioVersion>$(XUnitVersion)</XUnitRunnerVisualStudioVersion>
<XUnitExtensibilityExecutionVersion>$(XUnitVersion)</XUnitExtensibilityExecutionVersion>
<XUnitStaFactPackageVersion>0.3.5</XUnitStaFactPackageVersion>
</PropertyGroup>
<!-- Additional unchanging dependencies -->
<PropertyGroup>
<AccessibilityPackageVersion>4.6.0-alpha-27122-5</AccessibilityPackageVersion>
<MoqPackageVersion>4.10.0</MoqPackageVersion>
<MicrosoftTargetingPackNETFrameworkv472PackageVersion>1.0.0</MicrosoftTargetingPackNETFrameworkv472PackageVersion>
</PropertyGroup>
Expand Down
29 changes: 29 additions & 0 deletions eng/ci-helix-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
parameters:
# All parameters are required for our purposes; see send-to-helix.yml for details
RepoName: ''
HelixTargetQueues: ''
HelixAccessToken: ''
XUnitProjects: ''
DisplayNamePrefix: ''

steps:
- template: /eng/common/templates/steps/send-to-helix.yml
parameters:
HelixSource: ${{ parameters.RepoName }}
HelixType: 'tests/default'
zsd4yr marked this conversation as resolved.
Show resolved Hide resolved
HelixBuild: $(Build.BuildNumber)
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
HelixAccessToken: ${{ parameters.HelixAccessToken }} # only defined for internal CI
Creator: ${{ parameters.RepoName }} # required for public / external (when there is no access token)
XUnitProjects: ${{ parameters.XUnitProjects }}
XUnitPublishTargetFramework: netcoreapp3.0 # Whatever tfm will work for our test projects for `dotnet publish`
XUnitRuntimeTargetFramework: netcoreapp2.0 # Whatever tfm to pick from the xunit package, it must exist in that package or the helix job will fail
XUnitRunnerVersion: '2.4.1' # Should match XUnitRunnerConsoleVersion in eng/Versions.props
IncludeDotNetCli: true
DotNetCliPackageType: 'sdk'
DotNetCliVersion: '3.0.100-preview-010184' # MUST be official release: https://dotnet.microsoft.com/download/dotnet-core/3.0 ; does not need to match sdk we build against
EnableXUnitReporter: true
WaitForWorkItemCompletion: true
DisplayNamePrefix: ${{ parameters.DisplayNamePrefix }}
condition: succeeded()
continueOnError: false
Tanya-Solyanik marked this conversation as resolved.
Show resolved Hide resolved
52 changes: 30 additions & 22 deletions eng/ci.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
parameters:

# Needed because agent pool can't be read from a user-defined variable (Azure DevOps limitation)
agentPool: dotnet-external-temp-vs2019

# Needed because runAsPublic is used in template expressions, which can't read from user-defined variables
runAsPublic: true
# This section is required because agent pool can't be read from a user-defined variable (Azure DevOps limitation)
agentPool: dotnet-external-temp-vs2019
runAsPublic: true
repoName: dotnet/winforms

jobs:
- template: /eng/common/templates/jobs/jobs.yml
Expand All @@ -15,7 +13,7 @@ jobs:
enablePublishTestResults: true
enablePublishBuildAssets: true
enableTelemetry: true
helixRepo: dotnet/winforms
helixRepo: $(repoName)

jobs:
- job: Windows_NT
Expand Down Expand Up @@ -44,16 +42,19 @@ jobs:
value: ''

# needed for helix jobs
- name: _HelixAgentPool
- name: _UnitTestHelixAgentPool
value: 'Windows.10.Amd64.Open'
- name: _WinformsControlsTestBinDir
value: $(BUILD.SOURCESDIRECTORY)\artifacts\bin\WinformsControlsTest\$(_BuildConfig)\netcoreapp3.0
- name: _WinformsFuncTestBinDir
value: $(BUILD.SOURCESDIRECTORY)\artifacts\bin\System.Windows.Forms.Func.Tests\$(_BuildConfig)\netcoreapp3.0
- name: _HelixStagingDir
value: $(BUILD.STAGINGDIRECTORY)\helix\functests
- name: _HelixToken
value: ''

# Override some values if we're building internally

# Override some values if we're building internally (not public)
- ${{ if eq(parameters.runAsPublic, 'false') }}:

# note: You have to use list syntax here (-name: value) or you will get errors about declaring the same variable multiple times
Expand All @@ -68,9 +69,8 @@ jobs:
- name: _PublishBlobFeedUrl
value: https://dotnetfeed.blob.core.windows.net/dotnet-windowsdesktop/index.json

# note: Even though they are referenced here, user defined variables (like $(_SignType)) are not resolved
# until the agent is running on the machine. They can be overridden any time before they are resolved,
# like in the job matrix below (see Build_Debug)
# note: Even though they are referenced here, user defined variables (like $(_SignType)) are not resolved until the agent
# is running on the machine. They can be overridden any time before they are resolved, like in the job matrix below (see Build_Debug)
- name: _SignArgs
value: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) /p:Sign=$(_Sign)
- name: _PublishArgs
Expand All @@ -82,8 +82,11 @@ jobs:
- name: _OfficialBuildIdArgs
value: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)

- name: _HelixAgentPool
# Windows.81.Amd64 will fail on Debug.Assert in TryGetSystemMetricsForDpi in UnsafeNativeMethods
- name: _UnitTestHelixAgentPool
value: 'Windows.10.Amd64'
- name: _HelixToken
value: '$(helix-token)'

strategy:
matrix:
Expand All @@ -109,15 +112,20 @@ jobs:
/bl:$(BUILD.SOURCESDIRECTORY)\artifacts\log\$(_BuildConfig)\Build.binlog
displayName: Build

# Run unit tests and rename binlog
- script: eng\cibuild.cmd
-configuration $(_BuildConfig)
$(_OfficialBuildIdArgs)
-test
/bl:$(BUILD.SOURCESDIRECTORY)\artifacts\log\$(_BuildConfig)\Test.binlog
displayName: Run Unit Tests

# Run unit tests on Helix
- template: /eng/ci-helix-test.yml
parameters:
RepoName: ${{ parameters.repoName }}
HelixTargetQueues: $(_UnitTestHelixAgentPool)
HelixAccessToken: $(_HelixToken) # only defined for internal CI
# Should be $(BUILD.SOURCESDIRECTOR)System.Windows.Forms/src/**/*.Tests.csproj, but cannot until https://github.com/dotnet/arcade/issues/2156 is fixed
XUnitProjects: '$(BUILD.SOURCESDIRECTORY)\src\System.Windows.Forms\tests\UnitTests\System.Windows.Forms.Tests.csproj;$(BUILD.SOURCESDIRECTORY)\src\System.Windows.Forms.Design\tests\UnitTests\System.Windows.Forms.Design.Tests.csproj;$(BUILD.SOURCESDIRECTORY)\src\System.Windows.Forms.Design.Editors\tests\UnitTests\System.Windows.Forms.Design.Editors.Tests.csproj'
DisplayNamePrefix: 'Send Unit Tests (Windows.10) to Helix'

# Run integration tests and rename binlog
# These are not ready to run on Helix because:
# 1. Helix doesn't build projects (it only uses publish); we need .dotnet and also bin from build
# 2. we need an interactive pool for SendKeys to work
- script: eng\cibuild.cmd
-configuration $(_BuildConfig)
$(_OfficialBuildIdArgs)
Expand Down Expand Up @@ -150,4 +158,4 @@ jobs:
# Run component governance detection (only for release; only for internal)
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: Component Governance Detection
condition: and(succeeded(), eq(variables['_BuildConfig'], 'Release'))
condition: and(succeeded(), eq(variables['_BuildConfig'], 'Release'))
53 changes: 27 additions & 26 deletions eng/common/templates/steps/send-to-helix.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
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
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
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
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
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
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
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
DisplayNamePrefix: 'Send job to Helix' # optional -- rename the beginning of the displayName of the steps in AzDO
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 /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
displayName: Send job to Helix (Windows)
displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
env:
BuildConfig: $(_BuildConfig)
HelixSource: ${{ parameters.HelixSource }}
Expand Down Expand Up @@ -54,7 +55,7 @@ steps:
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 /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
displayName: Send job to Helix (Unix)
displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
env:
BuildConfig: $(_BuildConfig)
HelixSource: ${{ parameters.HelixSource }}
Expand Down
3 changes: 2 additions & 1 deletion global.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"version": "3.0.100-preview-010024"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19156.20"
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19156.20",
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19156.20"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<ItemGroup>
<PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
<PackageReference Include="xunit.stafact" Version="$(XUnitStaFactPackageVersion)" />
<PackageReference Include= "Microsoft.DotNet.XUnitExtensions" Version="$(MicrosoftDotNetXUnitExtensionsPackageVersion)" />
<PackageReference Include="Microsoft.DotNet.XUnitExtensions" Version="$(MicrosoftDotNetXUnitExtensionsPackageVersion)" />
<PackageReference Include="Microsoft.Win32.Registry" Version="$(MicrosoftWin32RegistryPackageVersion)" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Moq" Version="$(MoqPackageVersion)" />
<PackageReference Include="xunit.stafact" Version="$(XUnitStaFactPackageVersion)" />
</ItemGroup>

Expand Down

This file was deleted.

Loading