Fixed CI building with a newer .NET SDK than the metadata names (#1107)

This commit is contained in:
Thorsten Sommer authored and GitHub committed 2026-10-25 19:10:21 +01:00
1 parent 6eb23ebbcb
commit 8d9b15bd5f
2 files changed
+29 -2

No files matched your search

+24
View File
@@ -803,6 +803,18 @@ jobs:
cache: true
cache-dependency-path: 'app/MindWork AI Studio/packages.lock.json'
- name: Pin the .NET SDK from the metadata
shell: bash
run: |
# The runner images bring several .NET SDKs along, newer ones among them. Without a
# global.json, the newest of them builds instead of the one installed above from the
# metadata, and with it comes a newer C# version than the one we build with locally.
# The file exists in the pipeline only, so metadata.txt stays the one place which names
# the SDK. Bash runs on Windows as well, so that a failing command fails the step:
dotnet new globaljson --sdk-version "${DOTNET_SDK_VERSION}" --roll-forward disable --force
used_dotnet_sdk_version=$(dotnet --version)
echo ".NET SDK in use: '${used_dotnet_sdk_version}'"
- name: Cache Rust
uses: actions/cache@v4
with:
@@ -1055,6 +1067,18 @@ jobs:
cache: true
cache-dependency-path: 'app/MindWork AI Studio/packages.lock.json'
- name: Pin the .NET SDK from the metadata
shell: bash
run: |
# The runner images bring several .NET SDKs along, newer ones among them. Without a
# global.json, the newest of them builds instead of the one installed above from the
# metadata, and with it comes a newer C# version than the one we build with locally.
# The file exists in the pipeline only, so metadata.txt stays the one place which names
# the SDK. Bash runs on Windows as well, so that a failing command fails the step:
dotnet new globaljson --sdk-version "${DOTNET_SDK_VERSION}" --roll-forward disable --force
used_dotnet_sdk_version=$(dotnet --version)
echo ".NET SDK in use: '${used_dotnet_sdk_version}'"
- name: Deploy PDFium (Unix)
if: matrix.platform != 'windows-latest'
env:
@@ -68,10 +68,13 @@ public sealed class ClassicRagOutboundDataRestrictionTests : ToolRegistryTestBas
{
//
// Semantic Search offers the data sources in a fixed order, while the selection agent of the
// classic process may return them in any order. Both have to name the same data source:
// classic process may return them in any order. Both have to name the same data source.
//
// AsEnumerable() keeps Reverse() a reversed copy: from C# 14 on, Reverse() on an array
// reverses the array in place and returns nothing.
//
var classicChat = new ChatThread();
AISrcSelWithRetCtxVal.RequireOutboundDataRestriction(classicChat, dataSources.Reverse().ToArray(), passageCounts.Reverse().ToArray(), organizationMinimum);
AISrcSelWithRetCtxVal.RequireOutboundDataRestriction(classicChat, [..dataSources.AsEnumerable().Reverse()], [..passageCounts.AsEnumerable().Reverse()], organizationMinimum);
var semanticSearchChat = new ChatThread();
semanticSearchChat.RequireOutboundDataRestriction(SemanticSearchTool.GetRequirements(dataSources, passageCounts, organizationMinimum).OutboundData);