Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
3a723bb
Update code to use GetFirstLocation() instead of Locations[0] or Loca…
CyrusNajmabadi Oct 20, 2025
6feee42
Specialize 'fix all' for 'remove unnecessary null suppressions'
CyrusNajmabadi Oct 17, 2025
2bea0ec
Finish
CyrusNajmabadi Oct 17, 2025
20f218f
In progress
CyrusNajmabadi Oct 17, 2025
3bd700a
Add analysis code
CyrusNajmabadi Oct 17, 2025
a128934
Share code
CyrusNajmabadi Oct 17, 2025
ac8c0e1
Add fix provider
CyrusNajmabadi Oct 17, 2025
b9b5d78
Add tests
CyrusNajmabadi Oct 17, 2025
bfddee2
Downstream fallout
CyrusNajmabadi Oct 17, 2025
896546c
Bail out if unsafe is off
CyrusNajmabadi Oct 17, 2025
d08e9ad
Fixup and tests
CyrusNajmabadi Oct 17, 2025
8c9b604
Fix all tests
CyrusNajmabadi Oct 17, 2025
79637e5
Update src/Analyzers/CSharp/Tests/CSharpAnalyzers.UnitTests.projitems
CyrusNajmabadi Oct 17, 2025
f7c863c
Update src/Workspaces/SharedUtilitiesAndExtensions/Workspace/Core/Wor…
CyrusNajmabadi Oct 17, 2025
553cf25
Fix
CyrusNajmabadi Oct 17, 2025
17a2cb7
Add fix all test
CyrusNajmabadi Oct 17, 2025
db04581
Update test
CyrusNajmabadi Oct 17, 2025
f3f4fdd
Remove using
CyrusNajmabadi Oct 20, 2025
17c6281
Rebase
CyrusNajmabadi Oct 20, 2025
17d42dc
Allow semantic tokens in Razor to be better behaved (#80815)
davidwengier Oct 20, 2025
3b5303b
soft-select select camelcase matched item if user might be typing an …
genlu Oct 20, 2025
1eac69f
Fix ITypeSymbol.BaseType documentation for type parameters (#80770)
Copilot Oct 21, 2025
6a22d55
[main] Update dependencies from dotnet/arcade (#80828)
dotnet-maestro[bot] Oct 21, 2025
a3bf124
Fix RemoveUnnecessaryParentheses to detect simple expressions in bitw…
Copilot Oct 16, 2025
dd5f436
Remove placeholder WorkItem attributes from new tests
Copilot Oct 16, 2025
3535572
Rename childIsSimple to innerExpressionHasPrimaryPrecedence and add m…
Copilot Oct 16, 2025
8edbb4c
Fix issue converting an auto prop to a full prop when 'field' and 'in…
CyrusNajmabadi Oct 16, 2025
53766eb
Update documentation for DeclaringSyntaxReferences and Locations to c…
Copilot Oct 21, 2025
d46a551
Allow foreach on typed null enumerables (#80783)
Copilot Oct 21, 2025
7f4062e
Remove unused statement (#80823)
stbau04 Oct 21, 2025
281d8ca
Clean up a Razor external access service (#80830)
davidwengier Oct 21, 2025
e9cfa84
Only set DOTNET_HOST_PATH if something was installed (#80842)
dibarbet Oct 22, 2025
1b26500
Add test demonstrating behavior of ToMinimalDisplayString. (#80757)
CyrusNajmabadi Oct 22, 2025
f230001
Improve detection of invalid references for implicitly typed expressi…
AlekseyTs Oct 22, 2025
66ee420
Fix SafeContext of Span-valued collection expressions to match specif…
Copilot Oct 22, 2025
7558006
Fix typos and improve clarity in documentation (#80854)
sami-daniel Oct 22, 2025
e69f589
Use built-in inline array types when possible (#80557)
333fred Oct 22, 2025
91e1fa9
Extensions: Add ReduceExtensionMember API (#80659)
jcouv Oct 22, 2025
ce54e69
Completion for `#:project` paths (round 2) (#80844)
RikkiGibson Oct 22, 2025
6ad7a4f
Add XML documentation for GlobalStatementSyntax (#80697)
Copilot Oct 22, 2025
6c329ba
Fix ArgumentException in SeparatedSyntaxList.ReplaceSeparator to use …
Copilot Oct 22, 2025
ac2c437
Fix go to definition for conversions on invalid constructor overloads…
Rekkonnect Oct 23, 2025
dce4f99
[main] Update dependencies from dotnet/arcade (#80857)
dotnet-maestro[bot] Oct 23, 2025
226b319
Remove RestoreUseStaticGraphEvaluation workaround (#80852)
jjonescz Oct 23, 2025
6c787e4
Mark CS4009 error as a "build only" error. (#80698)
CyrusNajmabadi Oct 23, 2025
1ddd9e9
Update MicrosoftBuildTasksCoreVersionForMetrics to 17.11.48 (#80812)
ViktorHofer Oct 23, 2025
d8fb41b
Add runtime NullReferenceException validation to foreach null iterati…
Copilot Oct 23, 2025
7198c8f
Add regression test for compiler crash with syntax error in indexer d…
Copilot Oct 23, 2025
0b1739b
Add regression test for ParseAttributeArgumentList with invalid input…
Copilot Oct 23, 2025
d1039fd
Add regression test for Interlocked.Exchange with nullable types (#80…
Copilot Oct 23, 2025
4997b3a
Add tests verifying pointer types in type parameters require unsafe c…
Copilot Oct 23, 2025
8418ac3
Add back old DocumentSpan constructor (#80864)
peterwald Oct 23, 2025
de045a7
Add IsValidContainingStatement check to prevent collection initialize…
Copilot Oct 23, 2025
0968a69
Update src/Analyzers/CSharp/Tests/UseCollectionInitializer/UseCollect…
CyrusNajmabadi Oct 23, 2025
9cdd3c9
Fix handling of SymbolDisplayCompilerInternalOptions.UseArityForGener…
AlekseyTs Oct 23, 2025
4a4bb02
Merge remote-tracking branch 'upstream/main' into mergeMain
CyrusNajmabadi Oct 23, 2025
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
4 changes: 4 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ var symbolInfo = semanticModel.GetSymbolInfo(expression);
- Test utilities in `Microsoft.CodeAnalysis.Test.Utilities`
- Language-specific test bases: `CSharpTestBase`, `VisualBasicTestBase`
- Add `[WorkItem("https://github.com/dotnet/roslyn/issues/issueNumber")]` attribute to tests that fix specific GitHub issues
- Prefer raw string literals (`"""..."""`) over verbatim strings (`@"..."`) when creating test source code
- Avoid unnecessary intermediary assertions - tests should do the minimal amount of work to validate just the core issue being addressed
- In tests, use concise methods like `.Single()` instead of asserting count and extracting elements
- For compiler tests, validate diagnostics (e.g., `comp.VerifyEmitDiagnostics()`) so reviewers can easily see if the code is in error or represents something legal

## Critical Integration Points

Expand Down
1 change: 1 addition & 0 deletions .github/instructions/Compiler.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ dotnet run --file eng/generate-compiler-code.cs
- **Unit tests**: Test individual compiler phases (lexing, parsing)
- **Compilation tests**: Create `Compilation` objects and verify symbols/diagnostics
- **Cross-language patterns**: Many test patterns work for both C# and VB with minor syntax changes
- **Keep tests focused**: Avoid unnecessary assertions. Tests should do the minimal work necessary to get to the core assertions that validate the issue being addressed. For example, use `Single()` instead of checking counts and then accessing the first element.

## Debugger Integration

Expand Down
64 changes: 61 additions & 3 deletions docs/compilers/CSharp/Compiler Breaking Changes - DotNet 11.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,64 @@
# Breaking changes in Roslyn after .NET 10.0.100 through .NET 11 (version number tbd)
# Breaking changes in Roslyn after .NET 10.0.100 through .NET 11.0.100

This document lists known breaking changes in Roslyn after .NET 10 general release (.NET SDK version 10.0.100) through .NET 11 general release (.NET SDK version TBD).
This document lists known breaking changes in Roslyn after .NET 10 general release (.NET SDK version 10.0.100) through .NET 11 general release (.NET SDK version 11.0.100).

## The *safe-context* of a collection expression of Span/ReadOnlySpan type is now *declaration-block*

***Introduced in Visual Studio 2026 version 18.3***

The C# compiler made a breaking change in order to properly adhere to the [ref safety rules](https://github.com/dotnet/csharplang/blob/main/proposals/csharp-12.0/collection-expressions.md#ref-safety) in the *collection expressions* feature specification. Specifically, the following clause:

> * If the target type is a *span type* `System.Span<T>` or `System.ReadOnlySpan<T>`, the safe-context of the collection expression is the *declaration-block*.

Previously, the compiler used safe-context *function-member* in this situation. We have now made a change to use *declaration-block* per the specification. This can cause new errors to appear in existing code, such as in the scenario below:

```cs
scoped Span<int> items1 = default;
scoped Span<int> items2 = default;
foreach (var x in new[] { 1, 2 })
{
Span<int> items = [x];
if (x == 1)
items1 = items; // previously allowed, now an error

if (x == 2)
items2 = items; // previously allowed, now an error
}
```

If your code is impacted by this breaking change, consider using an array type for the relevant collection expressions instead:

```cs
scoped Span<int> items1 = default;
scoped Span<int> items2 = default;
foreach (var x in new[] { 1, 2 })
{
int[] items = [x];
if (x == 1)
items1 = items; // ok, using 'int[]' conversion to 'Span<int>'

if (x == 2)
items2 = items; // ok
}
```

Alternatively, move the collection-expression to a scope where the assignment is permitted:
```cs
scoped Span<int> items1 = default;
scoped Span<int> items2 = default;
Span<int> items = [0];
foreach (var x in new[] { 1, 2 })
{
items[0] = x;
if (x == 1)
items1 = items; // ok

if (x == 2)
items2 = items; // ok
}
```

See also https://github.com/dotnet/csharplang/issues/9750.

## `with()` as a collection expression element is treated as collection construction *arguments*

Expand All @@ -19,4 +77,4 @@ object[] items;
items = [with(x, y), z]; // C#14: call to with() method; PROTOTYPE C#14: error args not supported for object[]
items = [@with(x, y), z]; // call to with() method
object with(object a, object b) { ... }
```
```
2 changes: 1 addition & 1 deletion docs/compilers/CSharp/Warnversion Warning Waves.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ The compiler shipped with .NET 7 (the C# 11 compiler) contains the following war

| Warning ID | Description |
|------------|-------------|
| CS8981 | [Type names only containing lower-cased ascii characters may become reserved for the language](https://github.com/dotnet/roslyn/issues/56653) |
| CS8981 | [Type names only containing lowercase ASCII characters may become reserved for the language](https://github.com/dotnet/roslyn/issues/56653) |

## Warning level 6

Expand Down
6 changes: 3 additions & 3 deletions docs/contributing/Developing a Language Feature.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ This page discusses the process by which language feature *implementations* are
left some language details unspecified, to be resolved based
on implementation experience, or when experience with the prototype suggests that some language design
decisions should be reconsidered.
* **Closed**: The feature hit unforeseen design issues, implementation road blocks, etc. that caused it to be removed.
* **Closed**: The feature hit unforeseen design issues, implementation roadblocks, etc. that caused it to be removed.

1. **Finishing**: Once a feature is integrated into the main tree, it's time to lock down and finish the implementation. This includes any remaining areas not completed in the prototype, and completing all of the corner cases and tests (lots and lots of tests!).

Expand All @@ -52,7 +52,7 @@ This page discusses the process by which language feature *implementations* are

It's important to note there are **no guarantees** about a feature being a part of the language until it has reached the 'Acceptance' state **and** shipped in an official build. Features in any other state--no matter how complete--can be pulled at the last minute if the Language Team deems it's necessary to do so.

Pulling a feature after the prototype phase completes is not a decision the Langauge Team takes lightly; however, in the past, unforeseen circumstances have caused us to do so. The best example of this was the decision to pull parameterless struct constructors very late in the C# 6.0 timeframe.
Pulling a feature after the prototype phase completes is not a decision the Language Team takes lightly; however, in the past, unforeseen circumstances have caused us to do so. The best example of this was the decision to pull parameterless struct constructors very late in the C# 6.0 timeframe.

## Community Contributions
The intent of this document is to codify the process used by the Language Team to implement language features so that the community can contribute implementations. Community members can contribute to ongoing prototypes or in some cases be the primary driver of the prototype.
Expand All @@ -66,7 +66,7 @@ Community members who wish to drive a particular feature can request so by comme

- **Why are features disabled by default?**: Language features spend a considerable amount of time in the same branch as our shipping product which is often main. The main branch of Roslyn is kept in a ship ready state at all times. To facilitate this all features which haven't been fully accepted into the language must be disabled.

- **What is the difference between the feature and main branches?**: The main branch represents code which will ship in updates to the current version of the compiler. The feature branches represents each feature which are still in progress, therefore not merged yet.
- **What is the difference between the feature and main branches?**: The main branch represents code which will ship in updates to the current version of the compiler. The feature branches represent features that are still in progress, therefore not merged yet.

- **Why weren't speclets filed for early features?**: Features such as tuples and local functions were done before this process was fully developed. Their speclets were considered internally and eventually became the `docs/feature/<feature name.md>` file.

Expand Down
4 changes: 2 additions & 2 deletions docs/features/tuples.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ var t1 = new (int sum, int count) (0, 1);
var t2 = new (int sum, int count) { sum = 0, count = 0 };
var t3 = new (int, int) (0, 1); // field names are optional
```
Note that specifying field names is optional, however when names are provided, all fields must be named. Duplicate names are disallowed.
Note that specifying field names is optional; however, when names are provided, all fields must be named. Duplicate names are disallowed.

Tuple literals
--------------
Expand All @@ -99,7 +99,7 @@ Note that specifying field names is optional, however when names are provided, a


```C#
var t1 = (sum: 0, 1); // error! some fields are named some are not.
var t1 = (sum: 0, 1); // error! Some fields are named, some are not.
var t2 = (sum: 0, sum: 1); // error! duplicate names.
```

Expand Down
8 changes: 4 additions & 4 deletions docs/wiki/Diagnosing-Project-System-Build-Errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ you'll see a bunch of files that end in `.designtime.log`.

`Project "c:\Projects\ConsoleApplication53\ConsoleApplication53\ConsoleApplication53.csproj" (Compile target(s)):`

This shows the full name of the project, along with the target (Compile) being ran. Once again, look for the "Compile"
This shows the full name of the project, along with the target (Compile) being run. Once again, look for the "Compile"
target. There are files with other targets being invoked, you'll want to ignore those. You might want to consider
using Visual Studio's "find in files" feature to find the right file.

Expand All @@ -67,15 +67,15 @@ see something like this:

Build FAILED.

c:\ConsoleApplication53\ConsoleApplication53\ConsoleApplication53.csproj(17,5): error : An error occured!
c:\ConsoleApplication53\ConsoleApplication53\ConsoleApplication53.csproj(17,5): error : An error occurred!
0 Warning(s)
1 Error(s)

Notably, you should see `Build FAILED` and then one or more errors. This is summary of the errors in the log, so if you
Notably, you should see `Build FAILED` and then one or more errors. This is a summary of the errors in the log, so if you
do see an error, you should now search this log file for that error and find out where it is. Hopefully, the error will
give some sort of a hint; it's looking for some file or SDK that's not installed, or some permissions were denied, etc.
In that case, you can follow up with the owner of that to figure out what went wrong.

If it seems to be a problem with Visual Studio itself, you might want to file a bug on
[the Roslyn GitHub project](https://github.com/dotnet/roslyn) have a Visual Studio engineer take a look. Make sure you
[the Roslyn GitHub project](https://github.com/dotnet/roslyn) to have a Visual Studio engineer take a look. Make sure you
provide the full log and if possible your project file, since we may need both to diagnose the problem.
6 changes: 3 additions & 3 deletions eng/Version.Details.props
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ This file should be imported by eng/Versions.props
<SystemThreadingTasksDataflowPackageVersion>9.0.0</SystemThreadingTasksDataflowPackageVersion>
<SystemWindowsExtensionsPackageVersion>9.0.0</SystemWindowsExtensionsPackageVersion>
<!-- dotnet/arcade dependencies -->
<MicrosoftDotNetArcadeSdkPackageVersion>11.0.0-beta.25509.1</MicrosoftDotNetArcadeSdkPackageVersion>
<MicrosoftDotNetHelixSdkPackageVersion>11.0.0-beta.25509.1</MicrosoftDotNetHelixSdkPackageVersion>
<MicrosoftDotNetXliffTasksPackageVersion>11.0.0-beta.25509.1</MicrosoftDotNetXliffTasksPackageVersion>
<MicrosoftDotNetArcadeSdkPackageVersion>11.0.0-beta.25522.1</MicrosoftDotNetArcadeSdkPackageVersion>
<MicrosoftDotNetHelixSdkPackageVersion>11.0.0-beta.25522.1</MicrosoftDotNetHelixSdkPackageVersion>
<MicrosoftDotNetXliffTasksPackageVersion>11.0.0-beta.25522.1</MicrosoftDotNetXliffTasksPackageVersion>
<!-- dotnet/symreader dependencies -->
<MicrosoftDiaSymReaderPackageVersion>2.0.0</MicrosoftDiaSymReaderPackageVersion>
<!-- dotnet/roslyn-analyzers dependencies -->
Expand Down
12 changes: 6 additions & 6 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,13 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="11.0.0-beta.25509.1">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="11.0.0-beta.25522.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>488413fe104056170673a048a07906314e101e5d</Sha>
<Sha>c02d02ff59dddbf4d9ad1f32fdc42dec5871af44</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="11.0.0-beta.25509.1">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="11.0.0-beta.25522.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>488413fe104056170673a048a07906314e101e5d</Sha>
<Sha>c02d02ff59dddbf4d9ad1f32fdc42dec5871af44</Sha>
</Dependency>
<Dependency Name="Microsoft.DiaSymReader" Version="2.0.0">
<Uri>https://github.com/dotnet/symreader</Uri>
Expand All @@ -131,9 +131,9 @@
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>5d10d428050c0d6afef30a072c4ae68776621877</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="11.0.0-beta.25509.1">
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="11.0.0-beta.25522.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>488413fe104056170673a048a07906314e101e5d</Sha>
<Sha>c02d02ff59dddbf4d9ad1f32fdc42dec5871af44</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.0-preview.25375.1">
<Uri>https://github.com/dotnet/roslyn-analyzers</Uri>
Expand Down
2 changes: 1 addition & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
Analyzer, it needs to directly reference patched versions of some transitive dependencies.
-->
<PropertyGroup>
<MicrosoftBuildTasksCoreVersionForMetrics>17.10.29</MicrosoftBuildTasksCoreVersionForMetrics>
<MicrosoftBuildTasksCoreVersionForMetrics>17.11.48</MicrosoftBuildTasksCoreVersionForMetrics>
<SystemTextJsonVersionForMetrics>8.0.5</SystemTextJsonVersionForMetrics>
</PropertyGroup>
<PropertyGroup>
Expand Down
22 changes: 13 additions & 9 deletions eng/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -734,15 +734,6 @@ try {

Push-Location $RepoRoot

# Workaround for DOTNET_HOST_PATH not being set by older MSBuild
# Removal is tracked by https://github.com/dotnet/roslyn/issues/80742
if (-not $env:DOTNET_HOST_PATH) {
$env:DOTNET_HOST_PATH = Join-Path (Join-Path $RepoRoot '.dotnet') 'dotnet'
if (-not (Test-Path $env:DOTNET_HOST_PATH)) {
$env:DOTNET_HOST_PATH = "$($env:DOTNET_HOST_PATH).exe"
}
}

Subst-TempDir

if ($ci) {
Expand All @@ -759,6 +750,19 @@ try {
&(Ensure-DotNetSdk) tool restore
}

# Above InitializeDotNetCli or Ensure-DotNetSdk may have installed a local .NET SDK.
# $global:_DotNetInstallDir will point to the correct global or local SDK location.
# We need to make sure DOTNET_HOST_PATH points to that SDK as a workaround for older MSBuild
# which will not set it correctly. Removal is tracked by https://github.com/dotnet/roslyn/issues/80742
if (-not $env:DOTNET_HOST_PATH -and (Test-Path variable:global:_DotNetInstallDir)) {
$env:DOTNET_HOST_PATH = Join-Path $global:_DotNetInstallDir 'dotnet'
if (-not (Test-Path $env:DOTNET_HOST_PATH)) {
$env:DOTNET_HOST_PATH = "$($env:DOTNET_HOST_PATH).exe"
}

Write-Host "Setting DOTNET_HOST_PATH to $env:DOTNET_HOST_PATH"
}

if ($bootstrap -and $bootstrapDir -eq "") {
Write-Host "Building bootstrap Compiler"
$bootstrapDir = Join-Path (Join-Path $ArtifactsDir "bootstrap") "build"
Expand Down
6 changes: 2 additions & 4 deletions eng/common/SetupNugetSources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,8 @@ EnableInternalPackageSource() {
grep -i "<add key=\"$PackageSourceName\" value=\"true\"" "$ConfigFile" > /dev/null
if [ "$?" == "0" ]; then
echo "Enabling internal source '$PackageSourceName'."
# Remove the disabled entry
local OldDisableValue="<add key=\"$PackageSourceName\" value=\"true\" />"
local NewDisableValue="<!-- Reenabled for build : $PackageSourceName -->"
sed -i.bak "s|$OldDisableValue|$NewDisableValue|" "$ConfigFile"
# Remove the disabled entry (including any surrounding comments or whitespace on the same line)
sed -i.bak "/<add key=\"$PackageSourceName\" value=\"true\" \/>/d" "$ConfigFile"

# Add the source name to PackageSources for credential handling
PackageSources+=("$PackageSourceName")
Expand Down
24 changes: 18 additions & 6 deletions eng/common/core-templates/job/publish-build-assets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ jobs:
fetchDepth: 3
clean: true

- ${{ if eq(parameters.isAssetlessBuild, 'false') }}:
- ${{ if eq(parameters.publishingVersion, 3) }}:
- ${{ if eq(parameters.isAssetlessBuild, 'false') }}:
- ${{ if eq(parameters.publishingVersion, 3) }}:
- task: DownloadPipelineArtifact@2
displayName: Download Asset Manifests
inputs:
Expand All @@ -117,9 +117,16 @@ jobs:
flattenFolders: true
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}

- task: NuGetAuthenticate@1

# Populate internal runtime variables.
- template: /eng/common/templates/steps/enable-internal-sources.yml
parameters:
legacyCredential: $(dn-bot-dnceng-artifact-feeds-rw)

- template: /eng/common/templates/steps/enable-internal-runtimes.yml

- task: AzureCLI@2
displayName: Publish Build Assets
inputs:
Expand All @@ -132,9 +139,12 @@ jobs:
/p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }}
/p:MaestroApiEndpoint=https://maestro.dot.net
/p:OfficialBuildId=$(OfficialBuildId)
-runtimeSourceFeed https://ci.dot.net/internal
-runtimeSourceFeedKey $(dotnetbuilds-internal-container-read-token-base64)

condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}

- task: powershell@2
displayName: Create ReleaseConfigs Artifact
inputs:
Expand Down Expand Up @@ -162,7 +172,7 @@ jobs:
artifactName: AssetManifests
displayName: 'Publish Merged Manifest'
retryCountOnTaskFailure: 10 # for any logs being locked
sbomEnabled: false # we don't need SBOM for logs
sbomEnabled: false # we don't need SBOM for logs

- template: /eng/common/core-templates/steps/publish-build-artifacts.yml
parameters:
Expand Down Expand Up @@ -195,9 +205,11 @@ jobs:
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
-SkipAssetsPublishing '${{ parameters.isAssetlessBuild }}'
-runtimeSourceFeed https://ci.dot.net/internal
-runtimeSourceFeedKey $(dotnetbuilds-internal-container-read-token-base64)

- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
- template: /eng/common/core-templates/steps/publish-logs.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
JobLabel: 'Publish_Artifacts_Logs'
JobLabel: 'Publish_Artifacts_Logs'
Loading
Loading