Skip to content

Commit 9eb74d1

Browse files
Update dependencies from https://github.com/dotnet/arcade build 20190710.8 (#336)
- Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19360.8
1 parent c2c3def commit 9eb74d1

16 files changed

+529
-20
lines changed

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<ProductDependencies>
44
</ProductDependencies>
55
<ToolsetDependencies>
6-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19359.6">
6+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19360.8">
77
<Uri>https://github.com/dotnet/arcade</Uri>
8-
<Sha>0f5dd7680174620f31c9a00cdb2ac0b0e70e631f</Sha>
8+
<Sha>a6ae1b637ed236354529992729af875f6c8a180a</Sha>
99
</Dependency>
1010
</ToolsetDependencies>
1111
</Dependencies>

eng/common/SigningValidation.proj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<!--
44
This MSBuild file is intended to be used as the body of the default
55
publishing release pipeline. The release pipeline will use this file
6-
to invoke the the SignCheck tool to validate that packages about to
6+
to invoke the SignCheck tool to validate that packages about to
77
be published are correctly signed.
88
99
Parameters:
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<Project Sdk="Microsoft.DotNet.Helix.Sdk" DefaultTargets="Test">
2+
3+
<PropertyGroup Condition="'$(AGENT_OS)' == 'Windows_NT'">
4+
<WorkItemCommand>%HELIX_CORRELATION_PAYLOAD%\performance\scripts\benchmarks_ci.py --csproj %HELIX_CORRELATION_PAYLOAD%\performance\$(TargetCsproj)</WorkItemCommand>
5+
<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>
6+
<Python>py -3</Python>
7+
<CoreRun>%HELIX_CORRELATION_PAYLOAD%\Core_Root\CoreRun.exe</CoreRun>
8+
<HelixPreCommands>$(HelixPreCommands);call %HELIX_CORRELATION_PAYLOAD%\performance\tools\machine-setup.cmd</HelixPreCommands>
9+
<ArtifactsDirectory>%HELIX_CORRELATION_PAYLOAD%\artifacts\BenchmarkDotNet.Artifacts</ArtifactsDirectory>
10+
</PropertyGroup>
11+
12+
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT' and '$(RunFromPerfRepo)' == 'false'">
13+
<BaseDirectory>$HELIX_CORRELATION_PAYLOAD</BaseDirectory>
14+
<PerformanceDirectory>$(BaseDirectory)/performance</PerformanceDirectory>
15+
</PropertyGroup>
16+
17+
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT' and '$(RunFromPerfRepo)' == 'true'">
18+
<BaseDirectory>$HELIX_WORKITEM_PAYLOAD</BaseDirectory>
19+
<PerformanceDirectory>$(BaseDirectory)</PerformanceDirectory>
20+
</PropertyGroup>
21+
22+
<PropertyGroup Condition="'$(AGENT_OS)' != 'Windows_NT'">
23+
<WorkItemCommand>$(PerformanceDirectory)/scripts/benchmarks_ci.py --csproj $(PerformanceDirectory)/$(TargetCsproj)</WorkItemCommand>
24+
<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>
25+
<Python>python3</Python>
26+
<CoreRun>$(BaseDirectory)/Core_Root/corerun</CoreRun>
27+
<HelixPreCommands>$(HelixPreCommands);chmod +x $(PerformanceDirectory)/tools/machine-setup.sh;. $(PerformanceDirectory)/tools/machine-setup.sh</HelixPreCommands>
28+
<ArtifactsDirectory>$(BaseDirectory)/artifacts/BenchmarkDotNet.Artifacts</ArtifactsDirectory>
29+
</PropertyGroup>
30+
31+
<PropertyGroup Condition="'$(UseCoreRun)' == 'true'">
32+
<CoreRunArgument>--corerun $(CoreRun)</CoreRunArgument>
33+
</PropertyGroup>
34+
35+
<PropertyGroup Condition="'$(WorkItemCommand)' != ''">
36+
<WorkItemCommand>$(Python) $(WorkItemCommand) --incremental no --architecture $(Architecture) -f $(_Framework) $(PerfLabArguments)</WorkItemCommand>
37+
</PropertyGroup>
38+
39+
<PropertyGroup Condition="'$(_Framework)' != 'net461'">
40+
<WorkItemCommand>$(WorkItemCommand) $(CliArguments)</WorkItemCommand>
41+
</PropertyGroup>
42+
43+
<ItemGroup>
44+
<HelixCorrelationPayload Include="$(CorrelationPayloadDirectory)">
45+
<PayloadDirectory>%(Identity)</PayloadDirectory>
46+
</HelixCorrelationPayload>
47+
</ItemGroup>
48+
49+
<PropertyGroup>
50+
<PartitionCount>5</PartitionCount>
51+
</PropertyGroup>
52+
<ItemGroup>
53+
<Partition Include="$(BuildConfig).Partition0" Index="0" />
54+
<Partition Include="$(BuildConfig).Partition1" Index="1" />
55+
<Partition Include="$(BuildConfig).Partition2" Index="2" />
56+
<Partition Include="$(BuildConfig).Partition3" Index="3" />
57+
<Partition Include="$(BuildConfig).Partition4" Index="4" />
58+
</ItemGroup>
59+
60+
<!--
61+
Partition the Microbenchmarks project, but nothing else
62+
-->
63+
<ItemGroup Condition="$(TargetCsproj.Contains('MicroBenchmarks.csproj'))">
64+
<HelixWorkItem Include="@(Partition)">
65+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
66+
<Command>$(WorkItemCommand) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --artifacts $(ArtifactsDirectory) --partition-count $(PartitionCount) --partition-index %(HelixWorkItem.Index)"</Command>
67+
<Timeout>4:00</Timeout>
68+
</HelixWorkItem>
69+
</ItemGroup>
70+
<ItemGroup Condition="!$(TargetCsproj.Contains('MicroBenchmarks.csproj'))">
71+
<HelixWorkItem Include="$(BuildConfig).WorkItem">
72+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
73+
<Command>$(WorkItemCommand) --bdn-arguments="--anyCategories $(BDNCategories) $(ExtraBenchmarkDotNetArguments) $(CoreRunArgument) --artifacts $(ArtifactsDirectory)"</Command>
74+
<Timeout>4:00</Timeout>
75+
</HelixWorkItem>
76+
</ItemGroup>
77+
</Project>
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
Param(
2+
[string] $SourceDirectory=$env:BUILD_SOURCESDIRECTORY,
3+
[string] $CoreRootDirectory,
4+
[string] $Architecture="x64",
5+
[string] $Framework="netcoreapp3.0",
6+
[string] $CompilationMode="Tiered",
7+
[string] $Repository=$env:BUILD_REPOSITORY_NAME,
8+
[string] $Branch=$env:BUILD_SOURCEBRANCH,
9+
[string] $CommitSha=$env:BUILD_SOURCEVERSION,
10+
[string] $BuildNumber=$env:BUILD_BUILDNUMBER,
11+
[string] $RunCategories="coreclr corefx",
12+
[string] $Csproj="src\benchmarks\micro\MicroBenchmarks.csproj",
13+
[string] $Kind="micro",
14+
[switch] $Internal,
15+
[string] $Configurations="CompilationMode=$CompilationMode"
16+
)
17+
18+
$RunFromPerformanceRepo = ($Repository -eq "dotnet/performance")
19+
$UseCoreRun = ($CoreRootDirectory -ne [string]::Empty)
20+
21+
$PayloadDirectory = (Join-Path $SourceDirectory "Payload")
22+
$PerformanceDirectory = (Join-Path $PayloadDirectory "performance")
23+
$WorkItemDirectory = (Join-Path $SourceDirectory "workitem")
24+
$ExtraBenchmarkDotNetArguments = "--iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --stopOnFirstError true"
25+
$Creator = $env:BUILD_DEFINITIONNAME
26+
$PerfLabArguments = ""
27+
$HelixSourcePrefix = "pr"
28+
29+
$Queue = "Windows.10.Amd64.ClientRS4.DevEx.15.8.Open"
30+
31+
if ($Framework.StartsWith("netcoreapp")) {
32+
$Queue = "Windows.10.Amd64.ClientRS4.Open"
33+
}
34+
35+
if ($Internal) {
36+
$Queue = "Windows.10.Amd64.ClientRS5.Perf"
37+
$PerfLabArguments = "--upload-to-perflab-container"
38+
$ExtraBenchmarkDotNetArguments = ""
39+
$Creator = ""
40+
$HelixSourcePrefix = "official"
41+
}
42+
43+
$CommonSetupArguments="--frameworks $Framework --queue $Queue --build-number $BuildNumber --build-configs $Configurations"
44+
$SetupArguments = "--repository https://github.com/$Repository --branch $Branch --get-perf-hash --commit-sha $CommitSha $CommonSetupArguments"
45+
46+
if ($RunFromPerformanceRepo) {
47+
$SetupArguments = "--perf-hash $CommitSha $CommonSetupArguments"
48+
49+
robocopy $SourceDirectory $PerformanceDirectory /E /XD $PayloadDirectory $SourceDirectory\artifacts $SourceDirectory\.git
50+
}
51+
else {
52+
git clone --branch master --depth 1 --quiet https://github.com/dotnet/performance $PerformanceDirectory
53+
}
54+
55+
if ($UseCoreRun) {
56+
$NewCoreRoot = (Join-Path $PayloadDirectory "Core_Root")
57+
Move-Item -Path $CoreRootDirectory -Destination $NewCoreRoot
58+
}
59+
60+
$DocsDir = (Join-Path $PerformanceDirectory "docs")
61+
robocopy $DocsDir $WorkItemDirectory
62+
63+
# Set variables that we will need to have in future steps
64+
$ci = $true
65+
66+
. "$PSScriptRoot\..\pipeline-logging-functions.ps1"
67+
68+
# Directories
69+
Write-PipelineSetVariable -Name 'PayloadDirectory' -Value "$PayloadDirectory" -IsMultiJobVariable $false
70+
Write-PipelineSetVariable -Name 'PerformanceDirectory' -Value "$PerformanceDirectory" -IsMultiJobVariable $false
71+
Write-PipelineSetVariable -Name 'WorkItemDirectory' -Value "$WorkItemDirectory" -IsMultiJobVariable $false
72+
73+
# Script Arguments
74+
Write-PipelineSetVariable -Name 'Python' -Value "py -3" -IsMultiJobVariable $false
75+
Write-PipelineSetVariable -Name 'ExtraBenchmarkDotNetArguments' -Value "$ExtraBenchmarkDotNetArguments" -IsMultiJobVariable $false
76+
Write-PipelineSetVariable -Name 'SetupArguments' -Value "$SetupArguments" -IsMultiJobVariable $false
77+
Write-PipelineSetVariable -Name 'PerfLabArguments' -Value "$PerfLabArguments" -IsMultiJobVariable $false
78+
Write-PipelineSetVariable -Name 'BDNCategories' -Value "$RunCategories" -IsMultiJobVariable $false
79+
Write-PipelineSetVariable -Name 'TargetCsproj' -Value "$Csproj" -IsMultiJobVariable $false
80+
Write-PipelineSetVariable -Name 'Kind' -Value "$Kind" -IsMultiJobVariable $false
81+
Write-PipelineSetVariable -Name 'Architecture' -Value "$Architecture" -IsMultiJobVariable $false
82+
Write-PipelineSetVariable -Name 'UseCoreRun' -Value "$UseCoreRun" -IsMultiJobVariable $false
83+
Write-PipelineSetVariable -Name 'RunFromPerfRepo' -Value "$RunFromPerformanceRepo" -IsMultiJobVariable $false
84+
85+
# Helix Arguments
86+
Write-PipelineSetVariable -Name 'Creator' -Value "$Creator" -IsMultiJobVariable $false
87+
Write-PipelineSetVariable -Name 'Queue' -Value "$Queue" -IsMultiJobVariable $false
88+
Write-PipelineSetVariable -Name 'HelixSourcePrefix' -Value "$HelixSourcePrefix" -IsMultiJobVariable $false
89+
Write-PipelineSetVariable -Name '_BuildConfig' -Value "$Architecture.$Kind.$Framework" -IsMultiJobVariable $false
90+
91+
exit 0
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
#!/usr/bin/env bash
2+
3+
source_directory=$BUILD_SOURCESDIRECTORY
4+
core_root_directory=
5+
architecture=x64
6+
framework=netcoreapp3.0
7+
compilation_mode=tiered
8+
repository=$BUILD_REPOSITORY_NAME
9+
branch=$BUILD_SOURCEBRANCH
10+
commit_sha=$BUILD_SOURCEVERSION
11+
build_number=$BUILD_BUILDNUMBER
12+
internal=false
13+
kind="micro"
14+
run_categories="coreclr corefx"
15+
csproj="src\benchmarks\micro\MicroBenchmarks.csproj"
16+
configurations=
17+
run_from_perf_repo=false
18+
use_core_run=true
19+
20+
while (($# > 0)); do
21+
lowerI="$(echo $1 | awk '{print tolower($0)}')"
22+
case $lowerI in
23+
--sourcedirectory)
24+
source_directory=$2
25+
shift 2
26+
;;
27+
--corerootdirectory)
28+
core_root_directory=$2
29+
shift 2
30+
;;
31+
--architecture)
32+
architecture=$2
33+
shift 2
34+
;;
35+
--framework)
36+
framework=$2
37+
shift 2
38+
;;
39+
--compilationmode)
40+
compilation_mode=$2
41+
shift 2
42+
;;
43+
--repository)
44+
repository=$2
45+
shift 2
46+
;;
47+
--branch)
48+
branch=$2
49+
shift 2
50+
;;
51+
--commitsha)
52+
commit_sha=$2
53+
shift 2
54+
;;
55+
--buildnumber)
56+
build_number=$2
57+
shift 2
58+
;;
59+
--kind)
60+
kind=$2
61+
shift 2
62+
;;
63+
--runcategories)
64+
run_categories=$2
65+
shift 2
66+
;;
67+
--csproj)
68+
csproj=$2
69+
shift 2
70+
;;
71+
--internal)
72+
internal=true
73+
shift 1
74+
;;
75+
--configurations)
76+
configurations=$2
77+
shift 2
78+
;;
79+
--help)
80+
echo "Common settings:"
81+
echo " --corerootdirectory <value> Directory where Core_Root exists, if running perf testing with --corerun"
82+
echo " --architecture <value> Architecture of the testing being run"
83+
echo " --configurations <value> List of key=value pairs that will be passed to perf testing infrastructure."
84+
echo " ex: --configurations \"CompilationMode=Tiered OptimzationLevel=PGO\""
85+
echo " --help Print help and exit"
86+
echo ""
87+
echo "Advanced settings:"
88+
echo " --framework <value> The framework to run, if not running in master"
89+
echo " --compliationmode <value> The compilation mode if not passing --configurations"
90+
echo " --sourcedirectory <value> The directory of the sources. Defaults to env:BUILD_SOURCESDIRECTORY"
91+
echo " --repository <value> The name of the repository in the <owner>/<repository name> format. Defaults to env:BUILD_REPOSITORY_NAME"
92+
echo " --branch <value> The name of the branch. Defaults to env:BUILD_SOURCEBRANCH"
93+
echo " --commitsha <value> The commit sha1 to run against. Defaults to env:BUILD_SOURCEVERSION"
94+
echo " --buildnumber <value> The build number currently running. Defaults to env:BUILD_BUILDNUMBER"
95+
echo " --csproj The relative path to the benchmark csproj whose tests should be run. Defaults to src\benchmarks\micro\MicroBenchmarks.csproj"
96+
echo " --kind <value> Related to csproj. The kind of benchmarks that should be run. Defaults to micro"
97+
echo " --runcategories <value> Related to csproj. Categories of benchmarks to run. Defaults to \"coreclr corefx\""
98+
echo " --internal If the benchmarks are running as an official job."
99+
echo ""
100+
exit 0
101+
;;
102+
esac
103+
done
104+
105+
if [[ "$repository" == "dotnet/performance" ]]; then
106+
run_from_perf_repo=true
107+
fi
108+
109+
if [ -z "$configurations" ]; then
110+
configurations="CompliationMode=$compilation_mode"
111+
fi
112+
113+
if [ -z "$core_root_directory" ]; then
114+
use_core_run=false
115+
fi
116+
117+
payload_directory=$source_directory/Payload
118+
performance_directory=$payload_directory/performance
119+
workitem_directory=$source_directory/workitem
120+
extra_benchmark_dotnet_arguments="--iterationCount 1 --warmupCount 0 --invocationCount 1 --unrollFactor 1 --strategy ColdStart --stopOnFirstError true"
121+
perflab_arguments=
122+
queue=Ubuntu.1804.Amd64.Open
123+
creator=$BUILD_DEFINITIONNAME
124+
helix_source_prefix="pr"
125+
126+
if [[ "$internal" == true ]]; then
127+
perflab_arguments="--upload-to-perflab-container"
128+
helix_source_prefix="official"
129+
creator=
130+
extra_benchmark_dotnet_arguments=
131+
132+
if [[ "$architecture" = "arm64" ]]; then
133+
queue=Ubuntu.1804.Arm64.Perf
134+
else
135+
queue=Ubuntu.1804.Amd64.Perf
136+
fi
137+
fi
138+
139+
common_setup_arguments="--frameworks $framework --queue $queue --build-number $build_number --build-configs $configurations"
140+
setup_arguments="--repository https://github.com/$repository --branch $branch --get-perf-hash --commit-sha $commit_sha $common_setup_arguments"
141+
142+
if [[ "$run_from_perf_repo" = true ]]; then
143+
payload_directory=
144+
workitem_directory=$source_directory
145+
performance_directory=$workitem_directory
146+
setup_arguments="--perf-hash $commit_sha $common_setup_arguments"
147+
else
148+
git clone --branch master --depth 1 --quiet https://github.com/dotnet/performance $performance_directory
149+
150+
docs_directory=$performance_directory/docs
151+
mv $docs_directory $workitem_directory
152+
fi
153+
154+
if [[ "$use_core_run" = true ]]; then
155+
new_core_root=$payload_directory/Core_Root
156+
mv $core_root_directory $new_core_root
157+
fi
158+
159+
# Make sure all of our variables are available for future steps
160+
echo "##vso[task.setvariable variable=UseCoreRun]$use_core_run"
161+
echo "##vso[task.setvariable variable=Architecture]$architecture"
162+
echo "##vso[task.setvariable variable=PayloadDirectory]$payload_directory"
163+
echo "##vso[task.setvariable variable=PerformanceDirectory]$performance_directory"
164+
echo "##vso[task.setvariable variable=WorkItemDirectory]$workitem_directory"
165+
echo "##vso[task.setvariable variable=Queue]$queue"
166+
echo "##vso[task.setvariable variable=SetupArguments]$setup_arguments"
167+
echo "##vso[task.setvariable variable=Python]python3"
168+
echo "##vso[task.setvariable variable=PerfLabArguments]$perflab_arguments"
169+
echo "##vso[task.setvariable variable=ExtraBenchmarkDotNetArguments]$extra_benchmark_dotnet_arguments"
170+
echo "##vso[task.setvariable variable=BDNCategories]$run_categories"
171+
echo "##vso[task.setvariable variable=TargetCsproj]$csproj"
172+
echo "##vso[task.setvariable variable=RunFromPerfRepo]$run_from_perf_repo"
173+
echo "##vso[task.setvariable variable=Creator]$creator"
174+
echo "##vso[task.setvariable variable=HelixSourcePrefix]$helix_source_prefix"
175+
echo "##vso[task.setvariable variable=Kind]$kind"
176+
echo "##vso[task.setvariable variable=_BuildConfig]$architecture.$kind.$framework"

eng/common/pipeline-logging-functions.ps1

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,14 @@ function Write-PipelineTaskError {
7777
[string]$Name,
7878
[string]$Value,
7979
[switch]$Secret,
80-
[switch]$AsOutput)
81-
80+
[switch]$AsOutput,
81+
[bool]$IsMultiJobVariable=$true)
82+
8283
if($ci) {
8384
Write-LoggingCommand -Area 'task' -Event 'setvariable' -Data $Value -Properties @{
8485
'variable' = $Name
8586
'isSecret' = $Secret
86-
'isOutput' = 'true'
87+
'isOutput' = $IsMultiJobVariable
8788
} -AsOutput:$AsOutput
8889
}
8990
}

0 commit comments

Comments
 (0)