-
Notifications
You must be signed in to change notification settings - Fork 256
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update dependencies from https://github.com/dotnet/arcade build 20190…
…710.8 (#359) - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19360.8
- Loading branch information
1 parent
a7d2c6b
commit 9028b98
Showing
16 changed files
with
529 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
<Project Sdk="Microsoft.DotNet.Helix.Sdk" DefaultTargets="Test"> | ||
|
||
<PropertyGroup Condition="'$(AGENT_OS)' == 'Windows_NT'"> | ||
<WorkItemCommand>%HELIX_CORRELATION_PAYLOAD%\performance\scripts\benchmarks_ci.py --csproj %HELIX_CORRELATION_PAYLOAD%\performance\$(TargetCsproj)</WorkItemCommand> | ||
<CliArguments>--dotnet-versions %DOTNET_VERSION% --cli-source-info args --cli-branch %PERFLAB_BRANCH% --cli-commit-sha %PERFLAB_HASH% --cli-repository https://github.com/%PERFLAB_REPO% --cli-source-timestamp %PERFLAB_BUILDTIMESTAMP%</CliArguments> | ||
<Python>py -3</Python> | ||
<CoreRun>%HELIX_CORRELATION_PAYLOAD%\Core_Root\CoreRun.exe</CoreRun> | ||
<HelixPreCommands>$(HelixPreCommands);call %HELIX_CORRELATION_PAYLOAD%\performance\tools\machine-setup.cmd</HelixPreCommands> | ||
<ArtifactsDirectory>%HELIX_CORRELATION_PAYLOAD%\artifacts\BenchmarkDotNet.Artifacts</ArtifactsDirectory> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT' and '$(RunFromPerfRepo)' == 'false'"> | ||
<BaseDirectory>$HELIX_CORRELATION_PAYLOAD</BaseDirectory> | ||
<PerformanceDirectory>$(BaseDirectory)/performance</PerformanceDirectory> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT' and '$(RunFromPerfRepo)' == 'true'"> | ||
<BaseDirectory>$HELIX_WORKITEM_PAYLOAD</BaseDirectory> | ||
<PerformanceDirectory>$(BaseDirectory)</PerformanceDirectory> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT'"> | ||
<WorkItemCommand>$(PerformanceDirectory)/scripts/benchmarks_ci.py --csproj $(PerformanceDirectory)/$(TargetCsproj)</WorkItemCommand> | ||
<CliArguments>--dotnet-versions $DOTNET_VERSION --cli-source-info args --cli-branch $PERFLAB_BRANCH --cli-commit-sha $PERFLAB_HASH --cli-repository https://github.com/$PERFLAB_REPO --cli-source-timestamp $PERFLAB_BUILDTIMESTAMP</CliArguments> | ||
<Python>python3</Python> | ||
<CoreRun>$(BaseDirectory)/Core_Root/corerun</CoreRun> | ||
<HelixPreCommands>$(HelixPreCommands);chmod +x $(PerformanceDirectory)/tools/machine-setup.sh;. $(PerformanceDirectory)/tools/machine-setup.sh</HelixPreCommands> | ||
<ArtifactsDirectory>$(BaseDirectory)/artifacts/BenchmarkDotNet.Artifacts</ArtifactsDirectory> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition="'$(UseCoreRun)' == 'true'"> | ||
<CoreRunArgument>--corerun $(CoreRun)</CoreRunArgument> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition="'$(WorkItemCommand)' != ''"> | ||
<WorkItemCommand>$(Python) $(WorkItemCommand) --incremental no --architecture $(Architecture) -f $(_Framework) $(PerfLabArguments)</WorkItemCommand> | ||
</PropertyGroup> | ||
|
||
<PropertyGroup Condition="'$(_Framework)' != 'net461'"> | ||
<WorkItemCommand>$(WorkItemCommand) $(CliArguments)</WorkItemCommand> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<HelixCorrelationPayload Include="$(CorrelationPayloadDirectory)"> | ||
<PayloadDirectory>%(Identity)</PayloadDirectory> | ||
</HelixCorrelationPayload> | ||
</ItemGroup> | ||
|
||
<PropertyGroup> | ||
<PartitionCount>5</PartitionCount> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<Partition Include="$(BuildConfig).Partition0" Index="0" /> | ||
<Partition Include="$(BuildConfig).Partition1" Index="1" /> | ||
<Partition Include="$(BuildConfig).Partition2" Index="2" /> | ||
<Partition Include="$(BuildConfig).Partition3" Index="3" /> | ||
<Partition Include="$(BuildConfig).Partition4" Index="4" /> | ||
</ItemGroup> | ||
|
||
<!-- | ||
Partition the Microbenchmarks project, but nothing else | ||
--> | ||
<ItemGroup Condition="$(TargetCsproj.Contains('MicroBenchmarks.csproj'))"> | ||
<HelixWorkItem Include="@(Partition)"> | ||
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory> | ||
<Command>$(WorkItemCommand) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --artifacts $(ArtifactsDirectory) --partition-count $(PartitionCount) --partition-index %(HelixWorkItem.Index)"</Command> | ||
<Timeout>4:00</Timeout> | ||
</HelixWorkItem> | ||
</ItemGroup> | ||
<ItemGroup Condition="!$(TargetCsproj.Contains('MicroBenchmarks.csproj'))"> | ||
<HelixWorkItem Include="$(BuildConfig).WorkItem"> | ||
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory> | ||
<Command>$(WorkItemCommand) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --artifacts $(ArtifactsDirectory)"</Command> | ||
<Timeout>4:00</Timeout> | ||
</HelixWorkItem> | ||
</ItemGroup> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
Param( | ||
[string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY, | ||
[string] $CoreRootDirectory, | ||
[string] $Architecture="x64", | ||
[string] $Framework="netcoreapp3.0", | ||
[string] $CompilationMode="Tiered", | ||
[string] $Repository=$env:BUILD_REPOSITORY_NAME, | ||
[string] $Branch=$env:BUILD_SOURCEBRANCH, | ||
[string] $CommitSha=$env:BUILD_SOURCEVERSION, | ||
[string] $BuildNumber=$env:BUILD_BUILDNUMBER, | ||
[string] $RunCategories="coreclr corefx", | ||
[string] $Csproj="src\benchmarks\micro\MicroBenchmarks.csproj", | ||
[string] $Kind="micro", | ||
[switch] $Internal, | ||
[string] $Configurations="CompilationMode=$CompilationMode" | ||
) | ||
|
||
$RunFromPerformanceRepo = ($Repository -eq "dotnet/performance") | ||
$UseCoreRun = ($CoreRootDirectory -ne [string]::Empty) | ||
|
||
$PayloadDirectory = (Join-Path $SourceDirectory "Payload") | ||
$PerformanceDirectory = (Join-Path $PayloadDirectory "performance") | ||
$WorkItemDirectory = (Join-Path $SourceDirectory "workitem") | ||
$ExtraBenchmarkDotNetArguments = "--iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --stopOnFirstError true" | ||
$Creator = $env:BUILD_DEFINITIONNAME | ||
$PerfLabArguments = "" | ||
$HelixSourcePrefix = "pr" | ||
|
||
$Queue = "Windows.10.Amd64.ClientRS4.DevEx.15.8.Open" | ||
|
||
if ($Framework.StartsWith("netcoreapp")) { | ||
$Queue = "Windows.10.Amd64.ClientRS4.Open" | ||
} | ||
|
||
if ($Internal) { | ||
$Queue = "Windows.10.Amd64.ClientRS5.Perf" | ||
$PerfLabArguments = "--upload-to-perflab-container" | ||
$ExtraBenchmarkDotNetArguments = "" | ||
$Creator = "" | ||
$HelixSourcePrefix = "official" | ||
} | ||
|
||
$CommonSetupArguments="--frameworks $Framework --queue $Queue --build-number $BuildNumber --build-configs $Configurations" | ||
$SetupArguments = "--repository https://github.com/$Repository --branch $Branch --get-perf-hash --commit-sha $CommitSha $CommonSetupArguments" | ||
|
||
if ($RunFromPerformanceRepo) { | ||
$SetupArguments = "--perf-hash $CommitSha $CommonSetupArguments" | ||
|
||
robocopy $SourceDirectory $PerformanceDirectory /E /XD $PayloadDirectory $SourceDirectory\artifacts $SourceDirectory\.git | ||
} | ||
else { | ||
git clone --branch master --depth 1 --quiet https://github.com/dotnet/performance $PerformanceDirectory | ||
} | ||
|
||
if ($UseCoreRun) { | ||
$NewCoreRoot = (Join-Path $PayloadDirectory "Core_Root") | ||
Move-Item -Path $CoreRootDirectory -Destination $NewCoreRoot | ||
} | ||
|
||
$DocsDir = (Join-Path $PerformanceDirectory "docs") | ||
robocopy $DocsDir $WorkItemDirectory | ||
|
||
# Set variables that we will need to have in future steps | ||
$ci = $true | ||
|
||
. "$PSScriptRoot\..\pipeline-logging-functions.ps1" | ||
|
||
# Directories | ||
Write-PipelineSetVariable -Name 'PayloadDirectory' -Value "$PayloadDirectory" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'PerformanceDirectory' -Value "$PerformanceDirectory" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'WorkItemDirectory' -Value "$WorkItemDirectory" -IsMultiJobVariable $false | ||
|
||
# Script Arguments | ||
Write-PipelineSetVariable -Name 'Python' -Value "py -3" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'ExtraBenchmarkDotNetArguments' -Value "$ExtraBenchmarkDotNetArguments" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'SetupArguments' -Value "$SetupArguments" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'PerfLabArguments' -Value "$PerfLabArguments" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'BDNCategories' -Value "$RunCategories" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'TargetCsproj' -Value "$Csproj" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'Kind' -Value "$Kind" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'Architecture' -Value "$Architecture" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'UseCoreRun' -Value "$UseCoreRun" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'RunFromPerfRepo' -Value "$RunFromPerformanceRepo" -IsMultiJobVariable $false | ||
|
||
# Helix Arguments | ||
Write-PipelineSetVariable -Name 'Creator' -Value "$Creator" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'Queue' -Value "$Queue" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name 'HelixSourcePrefix' -Value "$HelixSourcePrefix" -IsMultiJobVariable $false | ||
Write-PipelineSetVariable -Name '_BuildConfig' -Value "$Architecture.$Kind.$Framework" -IsMultiJobVariable $false | ||
|
||
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,176 @@ | ||
#!/usr/bin/env bash | ||
|
||
source_directory=$BUILD_SOURCESDIRECTORY | ||
core_root_directory= | ||
architecture=x64 | ||
framework=netcoreapp3.0 | ||
compilation_mode=tiered | ||
repository=$BUILD_REPOSITORY_NAME | ||
branch=$BUILD_SOURCEBRANCH | ||
commit_sha=$BUILD_SOURCEVERSION | ||
build_number=$BUILD_BUILDNUMBER | ||
internal=false | ||
kind="micro" | ||
run_categories="coreclr corefx" | ||
csproj="src\benchmarks\micro\MicroBenchmarks.csproj" | ||
configurations= | ||
run_from_perf_repo=false | ||
use_core_run=true | ||
|
||
while (($# > 0)); do | ||
lowerI="$(echo $1 | awk '{print tolower($0)}')" | ||
case $lowerI in | ||
--sourcedirectory) | ||
source_directory=$2 | ||
shift 2 | ||
;; | ||
--corerootdirectory) | ||
core_root_directory=$2 | ||
shift 2 | ||
;; | ||
--architecture) | ||
architecture=$2 | ||
shift 2 | ||
;; | ||
--framework) | ||
framework=$2 | ||
shift 2 | ||
;; | ||
--compilationmode) | ||
compilation_mode=$2 | ||
shift 2 | ||
;; | ||
--repository) | ||
repository=$2 | ||
shift 2 | ||
;; | ||
--branch) | ||
branch=$2 | ||
shift 2 | ||
;; | ||
--commitsha) | ||
commit_sha=$2 | ||
shift 2 | ||
;; | ||
--buildnumber) | ||
build_number=$2 | ||
shift 2 | ||
;; | ||
--kind) | ||
kind=$2 | ||
shift 2 | ||
;; | ||
--runcategories) | ||
run_categories=$2 | ||
shift 2 | ||
;; | ||
--csproj) | ||
csproj=$2 | ||
shift 2 | ||
;; | ||
--internal) | ||
internal=true | ||
shift 1 | ||
;; | ||
--configurations) | ||
configurations=$2 | ||
shift 2 | ||
;; | ||
--help) | ||
echo "Common settings:" | ||
echo " --corerootdirectory <value> Directory where Core_Root exists, if running perf testing with --corerun" | ||
echo " --architecture <value> Architecture of the testing being run" | ||
echo " --configurations <value> List of key=value pairs that will be passed to perf testing infrastructure." | ||
echo " ex: --configurations \"CompilationMode=Tiered OptimzationLevel=PGO\"" | ||
echo " --help Print help and exit" | ||
echo "" | ||
echo "Advanced settings:" | ||
echo " --framework <value> The framework to run, if not running in master" | ||
echo " --compliationmode <value> The compilation mode if not passing --configurations" | ||
echo " --sourcedirectory <value> The directory of the sources. Defaults to env:BUILD_SOURCESDIRECTORY" | ||
echo " --repository <value> The name of the repository in the <owner>/<repository name> format. Defaults to env:BUILD_REPOSITORY_NAME" | ||
echo " --branch <value> The name of the branch. Defaults to env:BUILD_SOURCEBRANCH" | ||
echo " --commitsha <value> The commit sha1 to run against. Defaults to env:BUILD_SOURCEVERSION" | ||
echo " --buildnumber <value> The build number currently running. Defaults to env:BUILD_BUILDNUMBER" | ||
echo " --csproj The relative path to the benchmark csproj whose tests should be run. Defaults to src\benchmarks\micro\MicroBenchmarks.csproj" | ||
echo " --kind <value> Related to csproj. The kind of benchmarks that should be run. Defaults to micro" | ||
echo " --runcategories <value> Related to csproj. Categories of benchmarks to run. Defaults to \"coreclr corefx\"" | ||
echo " --internal If the benchmarks are running as an official job." | ||
echo "" | ||
exit 0 | ||
;; | ||
esac | ||
done | ||
|
||
if [[ "$repository" == "dotnet/performance" ]]; then | ||
run_from_perf_repo=true | ||
fi | ||
|
||
if [ -z "$configurations" ]; then | ||
configurations="CompliationMode=$compilation_mode" | ||
fi | ||
|
||
if [ -z "$core_root_directory" ]; then | ||
use_core_run=false | ||
fi | ||
|
||
payload_directory=$source_directory/Payload | ||
performance_directory=$payload_directory/performance | ||
workitem_directory=$source_directory/workitem | ||
extra_benchmark_dotnet_arguments="--iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --stopOnFirstError true" | ||
perflab_arguments= | ||
queue=Ubuntu.1804.Amd64.Open | ||
creator=$BUILD_DEFINITIONNAME | ||
helix_source_prefix="pr" | ||
|
||
if [[ "$internal" == true ]]; then | ||
perflab_arguments="--upload-to-perflab-container" | ||
helix_source_prefix="official" | ||
creator= | ||
extra_benchmark_dotnet_arguments= | ||
|
||
if [[ "$architecture" = "arm64" ]]; then | ||
queue=Ubuntu.1804.Arm64.Perf | ||
else | ||
queue=Ubuntu.1804.Amd64.Perf | ||
fi | ||
fi | ||
|
||
common_setup_arguments="--frameworks $framework --queue $queue --build-number $build_number --build-configs $configurations" | ||
setup_arguments="--repository https://github.com/$repository --branch $branch --get-perf-hash --commit-sha $commit_sha $common_setup_arguments" | ||
|
||
if [[ "$run_from_perf_repo" = true ]]; then | ||
payload_directory= | ||
workitem_directory=$source_directory | ||
performance_directory=$workitem_directory | ||
setup_arguments="--perf-hash $commit_sha $common_setup_arguments" | ||
else | ||
git clone --branch master --depth 1 --quiet https://github.com/dotnet/performance $performance_directory | ||
|
||
docs_directory=$performance_directory/docs | ||
mv $docs_directory $workitem_directory | ||
fi | ||
|
||
if [[ "$use_core_run" = true ]]; then | ||
new_core_root=$payload_directory/Core_Root | ||
mv $core_root_directory $new_core_root | ||
fi | ||
|
||
# Make sure all of our variables are available for future steps | ||
echo "##vso[task.setvariable variable=UseCoreRun]$use_core_run" | ||
echo "##vso[task.setvariable variable=Architecture]$architecture" | ||
echo "##vso[task.setvariable variable=PayloadDirectory]$payload_directory" | ||
echo "##vso[task.setvariable variable=PerformanceDirectory]$performance_directory" | ||
echo "##vso[task.setvariable variable=WorkItemDirectory]$workitem_directory" | ||
echo "##vso[task.setvariable variable=Queue]$queue" | ||
echo "##vso[task.setvariable variable=SetupArguments]$setup_arguments" | ||
echo "##vso[task.setvariable variable=Python]python3" | ||
echo "##vso[task.setvariable variable=PerfLabArguments]$perflab_arguments" | ||
echo "##vso[task.setvariable variable=ExtraBenchmarkDotNetArguments]$extra_benchmark_dotnet_arguments" | ||
echo "##vso[task.setvariable variable=BDNCategories]$run_categories" | ||
echo "##vso[task.setvariable variable=TargetCsproj]$csproj" | ||
echo "##vso[task.setvariable variable=RunFromPerfRepo]$run_from_perf_repo" | ||
echo "##vso[task.setvariable variable=Creator]$creator" | ||
echo "##vso[task.setvariable variable=HelixSourcePrefix]$helix_source_prefix" | ||
echo "##vso[task.setvariable variable=Kind]$kind" | ||
echo "##vso[task.setvariable variable=_BuildConfig]$architecture.$kind.$framework" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.