diff --git a/.github/ISSUE_TEMPLATE/z-build-break-infrastructure-issue-template.yml b/.github/ISSUE_TEMPLATE/z-build-break-infrastructure-issue-template.yml
index 26c31de065d..5e8d6042e32 100644
--- a/.github/ISSUE_TEMPLATE/z-build-break-infrastructure-issue-template.yml
+++ b/.github/ISSUE_TEMPLATE/z-build-break-infrastructure-issue-template.yml
@@ -38,7 +38,8 @@ body:
```json
{
- "ErrorMessage" : ""
+ "ErrorMessage" : "",
+ "BuildRetry": false
}
```
- type: textarea
diff --git a/Documentation/AzureDevOps/TestReportingData.md b/Documentation/AzureDevOps/TestReportingData.md
new file mode 100644
index 00000000000..f859407f88c
--- /dev/null
+++ b/Documentation/AzureDevOps/TestReportingData.md
@@ -0,0 +1,74 @@
+# Working with Test Reporting Data
+
+## Where is the data?
+
+Kusto's `Engsrvprod/engineeringdata` cluster contains the following tables:
+
+- AzureDevOpsTests
+- AzureDevOpsTestsHourly
+- AzureDevOpsTestsSummary
+- AzureDevOpsTestAnalysis
+
+## What is the data?
+
+The data that we collect is only a subset of tests that run and not every test that runs. **We've chosen to collect results of tests that have failed in the last 90 days**. We assume that tests that are always passing or have continued to pass after 90 days are no longer interesting to look at, and thus, their results are no longer collected.
+
+### AzureDevOpsTests
+
+This table contains the raw data that we collect for test results. Keep in mind that due to the large amount of data we are collecting, we are not including initial passing results in the raw table. However, you can see aggregates of passing results in other tables.
+
+Notable fields in this table include:
+
+**QueueName**: The OS queue the test ran on. Useful when needing to track down a configuration a test ran on.
+
+**Branch**: Name of the code branch the test ran from.
+
+**Outcome**: Contains values of `Failed`, `PassedOnRerun`, and `NotExecuted`.
+
+**RunCompleted**: The datetime value of when this test run completed.
+
+### AzureDevOpsTestsHourly
+
+Due to the amount of data that we need to process, we start with hourly aggregations of test results. The data collected on this table is for all failed tests in the last 90 days that we are tracking, so it may occur that we have a row for a test that has not ran in the last hour, but has failed in the last 90 days.
+
+Because this table is an aggregate, you'll notice that some of the fields, such as `QueueName` are not available going forward.
+
+Notable fields in this table include:
+
+**Branch**: Name of the code branch the test ran from.
+
+**PassCount**: How many times the test passed on the first try in the last hour.
+
+**FailCount**: How many times the test failed in the last hour.
+
+**PassOnRetryCount**: How many times the test passed after a retry in the last hour.
+
+**ReportDate**: The latest datetime value of data that was aggregated in this row.
+
+### AzureDevOpsTestsSummary
+
+Daily, we aggregate the hourly values into this table. It contains nearly the same fields as the `AzureDevOpsTestsHourly` table does, with the exception of fields we track for debugging purposes.
+
+### AzureDevOpsTestAnalysis
+
+This table contains the results of running the AzureDevOpsTestSummary results through [Chi-Squared Distribution](https://en.wikipedia.org/wiki/Chi-squared_distribution) in order to get a statistical analysis of the failures.
+
+Categories used when performing the chi-squared distribution:
+- Status
+ - Passing = Passed test + Passed on Rerun (since these also "passed" once)
+ - Failed = Failing test + Passed on Rerun (since these also "failed" once)
+- Time
+ - Historical = Test results between 30 and 7 days ago
+ - Current = Test results between 7 and 1 days ago.
+
+Notable fields in this table include:
+
+**ReportDate**: The latest datetime value of data that was used in the statistical analysis of the data in this row.
+
+**Significance**: The closer this value is to 1, the more likely something changed recently to cause this test to start failing. This value also indicates the difference between "Current" and "Historical"
+
+**SplitDate**: The date of the first day of the week of data aggregated. This date also represents the difference between the "Current" and "Historical" columns.
+
+## How do we collect the data?
+
+Only tests that are ran through Helix have their results captured to be added to the test reporting tables. This means that tests that run in pipelines not utilized by pull requests (e.g. CI pipelines) will have their data collected as well. And as long as our PAT has access to the Azure DevOps project the test runs in, we can collect results from tests that run there.
diff --git a/Documentation/AzureDevOps/TestReportingQueries.md b/Documentation/AzureDevOps/TestReportingQueries.md
index a166a0a7ae5..159a2b0d223 100644
--- a/Documentation/AzureDevOps/TestReportingQueries.md
+++ b/Documentation/AzureDevOps/TestReportingQueries.md
@@ -2,6 +2,8 @@
The following is a list of default queries to use to look up information about failed tests. Feel free to change them for your own usages.
+Click [here](TestReportingData.md) to learn more about the data we're collecting.
+
Caveats (Jan 14, 2022):
- Because this data is stored in an internal data source, it is unfortunately currently only available to Microsoft employees. (If you are an internal Microsoft employee, you can request access from the [.NET Engineering Services team](https://dev.azure.com/dnceng/internal/_wiki/wikis/DNCEng%20Services%20Wiki/107/How-to-get-a-hold-of-Engineering-Servicing).)
- Test data is only recently populated, thus, we only have about 2.5 weeks worth of data.
diff --git a/Documentation/NativeToolsOnMachine.md b/Documentation/NativeToolsOnMachine.md
new file mode 100644
index 00000000000..001671a95a8
--- /dev/null
+++ b/Documentation/NativeToolsOnMachine.md
@@ -0,0 +1,25 @@
+# Using Native Tools on Machine
+
+The replacement for [native tools bootstrapping](NativeToolsBootstrapping.md) is having all tools needed come pre-installed on
+the build machines. This document describes how to onboard to this new process.
+
+This document only applies to Windows machines as Linux machines already come with native tools installed via package manager.
+
+## Steps
+
+1. Before calling `InitializeNativeTools`, `init-tools-native.ps1`, or `eng/common`'s `build.ps1` in PowerShell,
+ set `$env:NativeToolsOnMachine = $True`. Alternatively, simply set it as an environment variable when calling
+ a template such as `jobs.yml` in YAML.
+2. Modify your `global.json`'s `native-tools` section to change the version of your tools to one of the following values:
+ - `latest` (e.g. `"cmake": "latest"`) – Grabs the latest version of the tool on the machine; this should be what you use in the majority of cases
+ - Major version (e.g. `"cmake": "3"`) – Grabs the latest minor & patch version of a particular major version on the machine; this is useful for artifacts you want to pin to a specific major version
+ - Minor version (e.g. `"python": "3.10"`) – Grabs the latest patch version of a particular minor version on the machine; this is useful for artifacts you want to pin to a specific minor version (such as Python)
+3. Adjust any usage of the artifacts on the machines in your scripts. The artifacts you specify in your `global.json` are promoted to the path,
+ so in general simply calling `cmake` will work. However, if you need the specific locations of tools, `InitializeNativeTools` will return those to
+ you as a dictionary, e.g.:
+ ```pwsh
+ $nativeToolsLocs = InitializeNativeTools
+ $cmakeLoc = $nativeToolsLocs["cmake"]
+ ```
+
+Once you've executed these steps, you'll be using the native tools installed on the machines.
\ No newline at end of file
diff --git a/Documentation/Projects/Build Analysis/KnownIssues.md b/Documentation/Projects/Build Analysis/KnownIssues.md
index 079b053e0b2..baa787bec15 100644
--- a/Documentation/Projects/Build Analysis/KnownIssues.md
+++ b/Documentation/Projects/Build Analysis/KnownIssues.md
@@ -23,7 +23,7 @@ There are two ways to report a known issue, one is via the build analysis and th
- Repository issue - In the repo in which the issue is happening
1. Add the label `Known Build Error`. (If the label is not available on the repository follow the instructions to [get on board](#how-to-get-onboard))
1. Copy and paste the template
- ```md
+ ````md
## Build Information
Build:
Leg Name:
@@ -31,10 +31,13 @@ There are two ways to report a known issue, one is via the build analysis and th
## Error Message
```json
- { "ErrorMessage":"" } ```
-
+ { "ErrorMessage":"",
+ "BuildRetry": false
+ }
```
+ ````
1. If you are opening a Repository issue you need to [fill the "Error message" section](#how-to-fill-a-known-issue-error-message-section"). If you are opening an infrastructure issue, this is going to be handled by the engineering services team.
+1. If the issue reported on the "ErrorMessage" section can be solved by retrying the build you can consider setting the ["Build Retry" configuration](###build-retry-functionality-in-known-issues) to ``true``
### Reporting known issue via build analysis
1. On the build analysis you will see links for the type of issue you want to open.
@@ -42,6 +45,7 @@ There are two ways to report a known issue, one is via the build analysis and th
1. Click on the link of the [type of issue that suits better the situation](#decide-infrastructure-or-repository-issue).
1. A template is going to appear for you and most of this information should be already prefilled.
1. If you are opening a Repository issue you need to [fill the "Error message" section](#how-to-fill-a-known-issue-error-message-section"). If you are opening an infrastructure issue, this is going to be handled by the engineering services team.
+1. If the issue reported on the "ErrorMessage" section can be solved by retrying the build you can consider setting the ["Build Retry" configuration](###build-retry-functionality-in-known-issues) to ``true``
## How to fill out a known issue error message section
The "ErrorMessage section" is on the next form:
@@ -72,6 +76,27 @@ After selecting the message, fill the "ErrorMessage";
}
```
+### Build retry functionality in known issues
+The build retry setting can be set to 'true' when the build failure on 'ErrorMessage' could be solved by retrying the build.
+
+The following is a good example of the use of "BuilRetry" as the only way to fix this error is by retrying the build
+```json
+{
+ "ErrorMessage":"The agent did not connect within the alloted time",
+ "BuildRetry": true
+}
+```
+
+The build retry functionality retries a build that, in its first attempt, had a failure that matched the known issue 'ErrorMessage' and has the 'BuildRetry' set to true.
+
+In the example stated above if a build fails with the error "The agent did not connect within the alloted time" on its first attempt this is going to be retried.
+
+Please note that this has some limitations, meaning if the failure occurred on an attempt different from the first, the build will not be retried.
+
+The limitation has been placed by design because of two reasons:
+1. If a build has been retried on more occasions the underlying reason could be something different.
+1. Many builds are analyzed and retrying them on multiple occasions can become expensive and problematic.
+
## How to get onboard
1. This feature is tightly related to the build analysis because of that it's necessary to have the `.NET Helix` GitHub application installed in the repo in which you intend to use known issues.
To get the application installed, you can contact the [.NET Core Engineering Services team](https://dev.azure.com/dnceng/internal/_wiki/wikis/DNCEng%20Services%20Wiki/107/How-to-get-a-hold-of-Engineering-Servicing)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 2dd3c27f72b..8aa1859eaac 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -15,25 +15,25 @@
-
+ https://github.com/dotnet/arcade
- d4623961318d0d6e013389bb9f1269492b5384b0
+ 78adce7e3545bf5a5252fd9963969d8950fadea6
-
+ https://github.com/dotnet/arcade
- d4623961318d0d6e013389bb9f1269492b5384b0
+ 78adce7e3545bf5a5252fd9963969d8950fadea6
-
+ https://github.com/dotnet/arcade
- d4623961318d0d6e013389bb9f1269492b5384b0
+ 78adce7e3545bf5a5252fd9963969d8950fadea6
-
+ https://github.com/dotnet/arcade
- d4623961318d0d6e013389bb9f1269492b5384b0
+ 78adce7e3545bf5a5252fd9963969d8950fadea6
-
+ https://github.com/dotnet/arcade
- d4623961318d0d6e013389bb9f1269492b5384b0
+ 78adce7e3545bf5a5252fd9963969d8950fadea6https://github.com/dotnet/arcade-services
@@ -43,26 +43,26 @@
https://github.com/dotnet/arcade-servicesa5f3ed9d5f560555ff6d26b286acdcfbb7ce3b14
-
+ https://github.com/dotnet/xharness
- 22cf990b9002462f1cf92fbcf48dcdcb9bd65116
+ f25a03548cc1d7d181018a338d7de2355a031d2a
-
+ https://github.com/dotnet/roslyn
- 6c191c842691f41808c758ce70bf57df2c2f42f4
+ 29e657c0582904529bae2a87c227220e03f509cfhttps://github.com/dotnet/linker3efd231da430baa0fd670e278f6b5c3e62834bde
-
+ https://github.com/dotnet/sourcelink
- bef48cb62fb4341d5dcdc29d2d75b598cad389fd
+ 2b13b222c4894db2bf59e0b7c2f909f55a0e60c3
-
+ https://github.com/dotnet/sourcelink
- bef48cb62fb4341d5dcdc29d2d75b598cad389fd
+ 2b13b222c4894db2bf59e0b7c2f909f55a0e60c3https://github.com/dotnet/symreader-converter
@@ -72,9 +72,9 @@
https://github.com/dotnet/symreader-converterc5ba7c88f92e2dde156c324a8c8edc04d9fa4fe0
-
+ https://github.com/dotnet/xliff-tasks
- 351ae3d0bc892fe4cdbab6f5f60052216514f935
+ de60e8170dea65032fe393a4fa25eee9152087de
diff --git a/eng/Versions.props b/eng/Versions.props
index 02e5aa18f3a..aa6fa32a4b2 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -39,9 +39,10 @@
2.0.02.1.12.1.0
- 4.3.0-2.22314.23
+ 4.3.0-3.22329.3016.7.16.0.100-1.22103.2
+ 1.0.0-v3.14.0.57224.8.35.3.0.12.3.0
@@ -70,20 +71,20 @@
8.5.02.4.2-pre.92.0.3
- 7.0.0-beta.22324.1
- 7.0.0-beta.22324.1
+ 7.0.0-beta.22356.3
+ 7.0.0-beta.22356.32.0.01.6.01.0.02.0.41.1.0-beta2-19575-011.1.0-beta.21553.1
- 1.2.0-beta-22325-02
- 1.2.0-beta-22325-02
- 7.0.0-beta.22324.1
- 1.0.0-beta.22325.1
+ 1.2.0-beta-22357-02
+ 1.2.0-beta-22357-02
+ 7.0.0-beta.22356.3
+ 1.0.0-beta.22357.11.1.0-beta.22076.4
- 1.0.0-prerelease.22320.1
+ 1.0.0-prerelease.22330.12.0.0-preview.1.21526.152.0.0-preview.1.21526.157.0.100-preview.5.22273.2
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
index 25e97ac0077..afdd1750290 100644
--- a/eng/common/generate-locproject.ps1
+++ b/eng/common/generate-locproject.ps1
@@ -10,9 +10,7 @@ Param(
Set-StrictMode -Version 2.0
$ErrorActionPreference = "Stop"
-. $PSScriptRoot\tools.ps1
-
-Import-Module -Name (Join-Path $PSScriptRoot 'native\CommonLibrary.psm1')
+. $PSScriptRoot\pipeline-logging-functions.ps1
$exclusionsFilePath = "$SourcesDirectory\eng\Localize\LocExclusions.json"
$exclusions = @{ Exclusions = @() }
@@ -28,7 +26,7 @@ $jsonFiles = @()
$jsonTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\.template\.config\\localize\\.+\.en\.json" } # .NET templating pattern
$jsonTemplateFiles | ForEach-Object {
$null = $_.Name -Match "(.+)\.[\w-]+\.json" # matches '[filename].[langcode].json
-
+
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).json"
$jsonFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
}
@@ -46,7 +44,7 @@ if ($allXlfFiles) {
}
$langXlfFiles | ForEach-Object {
$null = $_.Name -Match "(.+)\.[\w-]+\.xlf" # matches '[filename].[langcode].xlf
-
+
$destinationFile = "$($_.Directory.FullName)\$($Matches.1).xlf"
$xlfFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
}
@@ -59,7 +57,7 @@ $locJson = @{
LanguageSet = $LanguageSet
LocItems = @(
$locFiles | ForEach-Object {
- $outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
+ $outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
$continue = $true
foreach ($exclusion in $exclusions.Exclusions) {
if ($outputPath.Contains($exclusion))
@@ -108,10 +106,10 @@ else {
if ((Get-FileHash "$SourcesDirectory\eng\Localize\LocProject-generated.json").Hash -ne (Get-FileHash "$SourcesDirectory\eng\Localize\LocProject.json").Hash) {
Write-PipelineTelemetryError -Category "OneLocBuild" -Message "Existing LocProject.json differs from generated LocProject.json. Download LocProject-generated.json and compare them."
-
+
exit 1
}
else {
Write-Host "Generated LocProject.json and current LocProject.json are identical."
}
-}
\ No newline at end of file
+}
diff --git a/eng/common/init-tools-native.ps1 b/eng/common/init-tools-native.ps1
index 24a5e65de1b..8d48ec5680f 100644
--- a/eng/common/init-tools-native.ps1
+++ b/eng/common/init-tools-native.ps1
@@ -87,6 +87,7 @@ try {
$NativeTools.PSObject.Properties | ForEach-Object {
$ToolName = $_.Name
$ToolVersion = $_.Value
+ $InstalledTools = @{}
if ((Get-Command "$ToolName" -ErrorAction SilentlyContinue) -eq $null) {
if ($ToolVersion -eq "latest") {
@@ -111,9 +112,10 @@ try {
$ToolPath = Convert-Path -Path $BinPath
Write-Host "Adding $ToolName to the path ($ToolPath)..."
Write-Host "##vso[task.prependpath]$ToolPath"
+ $InstalledTools += @{ $ToolName = $ToolDirectory.FullName }
}
}
- exit 0
+ return $InstalledTools
} else {
$NativeTools.PSObject.Properties | ForEach-Object {
$ToolName = $_.Name
diff --git a/eng/common/native/init-compiler.sh b/eng/common/native/init-compiler.sh
index 6d7ba15e5f2..4b99a9cad3b 100755
--- a/eng/common/native/init-compiler.sh
+++ b/eng/common/native/init-compiler.sh
@@ -71,7 +71,7 @@ if [[ -z "$CLR_CC" ]]; then
# Set default versions
if [[ -z "$majorVersion" ]]; then
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
- if [[ "$compiler" == "clang" ]]; then versions=( 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
+ if [[ "$compiler" == "clang" ]]; then versions=( 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 )
elif [[ "$compiler" == "gcc" ]]; then versions=( 12 11 10 9 8 7 6 5 4.9 ); fi
for version in "${versions[@]}"; do
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 395b43eebb6..9638c63c725 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -635,7 +635,7 @@ function InitializeNativeTools() {
InstallDirectory = "$ToolsDir"
}
}
- if (Test-Path variable:NativeToolsOnMachine) {
+ if ($env:NativeToolsOnMachine) {
Write-Host "Variable NativeToolsOnMachine detected, enabling native tool path promotion..."
$nativeArgs += @{ PathPromotion = $true }
}
diff --git a/global.json b/global.json
index e094e848259..ac217c3e9be 100644
--- a/global.json
+++ b/global.json
@@ -1,9 +1,9 @@
{
"tools": {
- "dotnet": "7.0.100-preview.2.22153.17"
+ "dotnet": "7.0.100-preview.5.22307.18"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22324.1",
- "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22324.1"
+ "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22356.3",
+ "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22356.3"
}
}
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props b/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props
index 2845d72d97a..7a59ee7082d 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/DefaultVersions.props
@@ -106,6 +106,7 @@
1.0.02.1.31.1.286
+ 1.0.0-v3.14.0.5722
diff --git a/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj b/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj
index 8bd296befef..c592599f24f 100644
--- a/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj
+++ b/src/Microsoft.DotNet.Arcade.Sdk/tools/Sign.proj
@@ -6,6 +6,9 @@
+
+
+
diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/PublishingConstants.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/PublishingConstants.cs
index 23c8a6fb39a..4c80f6c0186 100644
--- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/PublishingConstants.cs
+++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/model/PublishingConstants.cs
@@ -1039,6 +1039,17 @@ public enum BuildQuality
PublicAndInternalSymbolTargets,
filenamesToExclude: FilenamesToExclude,
flatten: false),
+
+ // "VS 17.4",
+ new TargetChannelConfig(
+ 2914,
+ false,
+ PublishingInfraVersion.All,
+ new List(),
+ DotNetToolsFeeds,
+ PublicAndInternalSymbolTargets,
+ filenamesToExclude: FilenamesToExclude,
+ flatten: false),
// ".NET Libraries",
new TargetChannelConfig(
diff --git a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/Microsoft.DotNet.Build.Tasks.Workloads.csproj b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/Microsoft.DotNet.Build.Tasks.Workloads.csproj
index 4a25c6a430e..ec8b207869a 100644
--- a/src/Microsoft.DotNet.Build.Tasks.Workloads/src/Microsoft.DotNet.Build.Tasks.Workloads.csproj
+++ b/src/Microsoft.DotNet.Build.Tasks.Workloads/src/Microsoft.DotNet.Build.Tasks.Workloads.csproj
@@ -40,7 +40,7 @@
-
+
diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props b/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props
index 2d881320123..c1d893edb82 100644
--- a/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props
+++ b/src/Microsoft.DotNet.Helix/Sdk/tools/dotnet-cli/DotNetCli.props
@@ -2,7 +2,7 @@
false
- 7.0.0-preview.2.22153.2
+ 7.0.0-preview.5.22303.8runtime$(BundledNETCoreAppPackageVersion)
diff --git a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-runner.apple.sh b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-runner.apple.sh
index 9dd50c5c8b3..87a2650b6a3 100644
--- a/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-runner.apple.sh
+++ b/src/Microsoft.DotNet.Helix/Sdk/tools/xharness-runner/xharness-runner.apple.sh
@@ -119,7 +119,15 @@ fi
if [ -z "$xcode_version" ]; then
xcode_path="$(dirname "$(dirname "$(xcode-select -p)")")"
else
- xcode_path="/Applications/Xcode${xcode_version/./}.app"
+ xcode_path="/Applications/Xcode_${xcode_version}.app"
+
+ if [ ! -d "$xcode_path" ]; then
+ xcode_path="/Applications/Xcode${xcode_version/./}.app"
+ fi
+fi
+
+if [ ! -d "$xcode_path" ]; then
+ echo "WARNING - Xcode not found at $xcode_path"
fi
# First we need to revive env variables since they were erased by launchctl
diff --git a/src/Microsoft.DotNet.SignTool.Tests/Microsoft.DotNet.SignTool.Tests.csproj b/src/Microsoft.DotNet.SignTool.Tests/Microsoft.DotNet.SignTool.Tests.csproj
index fa510120e81..3f0032d2504 100644
--- a/src/Microsoft.DotNet.SignTool.Tests/Microsoft.DotNet.SignTool.Tests.csproj
+++ b/src/Microsoft.DotNet.SignTool.Tests/Microsoft.DotNet.SignTool.Tests.csproj
@@ -11,7 +11,7 @@
-
+
@@ -24,7 +24,7 @@
Always
-
+ Always
tools\wix\%(RecursiveDir)%(Filename)%(Extension)
diff --git a/src/SignCheck/Microsoft.SignCheck/Microsoft.DotNet.SignCheckLibrary.csproj b/src/SignCheck/Microsoft.SignCheck/Microsoft.DotNet.SignCheckLibrary.csproj
index 3413aedb76e..887a6e4dd1d 100644
--- a/src/SignCheck/Microsoft.SignCheck/Microsoft.DotNet.SignCheckLibrary.csproj
+++ b/src/SignCheck/Microsoft.SignCheck/Microsoft.DotNet.SignCheckLibrary.csproj
@@ -24,7 +24,7 @@
-
+
diff --git a/tests/UnitTests.proj b/tests/UnitTests.proj
index 4309c560f1f..48668ba72aa 100644
--- a/tests/UnitTests.proj
+++ b/tests/UnitTests.proj
@@ -58,7 +58,6 @@
-
@@ -71,7 +70,6 @@
-
@@ -80,6 +78,8 @@
$(HelixPreCommands);find $HELIX_CORRELATION_PAYLOAD -type f$(HelixPreCommands);find . -type f
+
+ $(HelixPreCommands);ulimit -c 0