From 0358f55025b00a5df4870985fbfcdf9d16c0de60 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 24 Mar 2026 11:11:59 +0500 Subject: [PATCH 1/4] Add MS SQL Server 2025 domain configuration to be available for testing --- Orm/Xtensive.Orm.Tests.Framework/Orm.config | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Orm/Xtensive.Orm.Tests.Framework/Orm.config b/Orm/Xtensive.Orm.Tests.Framework/Orm.config index f7fce5f36..acd57272e 100644 --- a/Orm/Xtensive.Orm.Tests.Framework/Orm.config +++ b/Orm/Xtensive.Orm.Tests.Framework/Orm.config @@ -17,10 +17,13 @@ - + + + + + Date: Tue, 24 Mar 2026 11:12:53 +0500 Subject: [PATCH 2/4] MS SQL 2025 container --- Containers/mssql/do-mssql-2025 | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Containers/mssql/do-mssql-2025 diff --git a/Containers/mssql/do-mssql-2025 b/Containers/mssql/do-mssql-2025 new file mode 100644 index 000000000..9a7f2e707 --- /dev/null +++ b/Containers/mssql/do-mssql-2025 @@ -0,0 +1,34 @@ +FROM mcr.microsoft.com/mssql/server:2025-latest +USER root + +# See https://github.com/microsoft/mssql-docker/blob/master/linux/preview/examples/mssql-agent-fts-ha-tools/Dockerfile +# for details +RUN export DEBIAN_FRONTEND=noninteractive +RUN apt-get update + +#Actualize time zone database +RUN apt-get install -y tzdata +RUN apt-get install -yq curl +RUN apt-get install -yq apt-transport-https +RUN apt-get install -y gnupg2 +RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - +RUN curl https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | tee /etc/apt/sources.list.d/mssql-server.list +RUN apt-get update +RUN apt-get install -y mssql-server-fts +RUN apt-get clean +RUN rm -rf /var/lib/apt/lists + +# Create a config directory +RUN mkdir -p /usr/config +WORKDIR /usr/config + +# Bundle config source +COPY configure-db.sh /usr/config/ +COPY entrypoint.sh /usr/config/ +COPY setup.sql /usr/config/ + +# Grant permissions for to our scripts to be executable +RUN chmod +x /usr/config/entrypoint.sh +RUN chmod +x /usr/config/configure-db.sh + +ENTRYPOINT ["./entrypoint.sh"] \ No newline at end of file From 88517532e1debda246199331525c1f6c08a40d55 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 24 Mar 2026 11:18:34 +0500 Subject: [PATCH 3/4] Configure test workflows for MS SQL Server 2025 --- .github/workflows/auto-mssql2025-tests.yml | 148 +++++++++++++++++++ .github/workflows/dispatched-mssql-tests.yml | 25 ++++ 2 files changed, 173 insertions(+) create mode 100644 .github/workflows/auto-mssql2025-tests.yml diff --git a/.github/workflows/auto-mssql2025-tests.yml b/.github/workflows/auto-mssql2025-tests.yml new file mode 100644 index 000000000..a93dcd0c9 --- /dev/null +++ b/.github/workflows/auto-mssql2025-tests.yml @@ -0,0 +1,148 @@ +name: ⚙📚 Automated MS SQL Server 2025 tests +run-name: Tests on MS SQL Server 2025 tests triggered by '${{ github.event_name }}'. Run No ${{ github.run_number }}. + +on: + push: + branches: + - 'master' + - 'master-*' + paths: + # containers + - 'Containers/mssql/do-mssql-2025' + - 'Containers/mssql/**.sh' + - 'Containers/mssql/**.sql' + # main project - most common part, that may have changes that affect + - 'Orm/Xtensive.Orm/Orm/Providers/**' + - 'Orm/Xtensive.Orm/Orm/Rse/**' + - 'Orm/Xtensive.Orm/Orm/Upgrade/**' + - 'Orm/Xtensive.Orm/Sql/**' + # provider + - 'Orm/Xtensive.Orm.SqlServer/**' + - '!Orm/Xtensive.Orm.SqlServer/**.csproj' + - '!Orm/Xtensive.Orm.SqlServer/NuGetContent/**' + # main test project - any code change + - 'Orm/Xtensive.Orm.Tests/Issues/**' + - 'Orm/Xtensive.Orm.Tests/Storage/**' + - 'Orm/Xtensive.Orm.Tests/Upgrade/**' + # sql tests - general and provider-specific + - 'Orm/Xtensive.Orm.Tests.Sql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**' + - '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**' + - '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**' + #- '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**' + - '!Orm/Xtensive.Orm.Tests.Sql/**.csproj' + # ability to trigger on demand + - 'TestFileForBuildServerTests.txt' + pull_request: + branches: + - 'master' + paths: + # containers + - 'Containers/mssql/do-mssql-2025' + - 'Containers/mssql/**.sh' + - 'Containers/mssql/**.sql' + # main project - most common part, that may have changes that affect + - 'Orm/Xtensive.Orm/Orm/Providers/**' + - 'Orm/Xtensive.Orm/Orm/Rse/**' + - 'Orm/Xtensive.Orm/Orm/Upgrade/**' + - 'Orm/Xtensive.Orm/Sql/**' + # provider + - 'Orm/Xtensive.Orm.SqlServer/**' + - '!Orm/Xtensive.Orm.SqlServer/**.csproj' + - '!Orm/Xtensive.Orm.SqlServer/NuGetContent/**' + # main test project - any code change + - 'Orm/Xtensive.Orm.Tests/Issues/**' + - 'Orm/Xtensive.Orm.Tests/Storage/**' + - 'Orm/Xtensive.Orm.Tests/Upgrade/**' + # sql tests - general and provider-specific + - 'Orm/Xtensive.Orm.Tests.Sql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**' + - '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**' + - '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**' + #- '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**' + - '!Orm/Xtensive.Orm.Tests.Sql/**.csproj' + # ability to trigger on demand + - 'TestFileForBuildServerTests.txt' + + pull_request_review: + branches: + - 'master' + paths: + # containers + - 'Containers/mssql/do-mssql-2025' + - 'Containers/mssql/**.sh' + - 'Containers/mssql/**.sql' + # main project - most common part, that may have changes that affect + - 'Orm/Xtensive.Orm/Orm/Providers/**' + - 'Orm/Xtensive.Orm/Orm/Rse/**' + - 'Orm/Xtensive.Orm/Orm/Upgrade/**' + - 'Orm/Xtensive.Orm/Sql/**' + # provider + - 'Orm/Xtensive.Orm.SqlServer/**' + - '!Orm/Xtensive.Orm.SqlServer/**.csproj' + - '!Orm/Xtensive.Orm.SqlServer/NuGetContent/**' + # main test project - any code change + - 'Orm/Xtensive.Orm.Tests/Issues/**' + - 'Orm/Xtensive.Orm.Tests/Storage/**' + - 'Orm/Xtensive.Orm.Tests/Upgrade/**' + # sql tests - general and provider-specific + - 'Orm/Xtensive.Orm.Tests.Sql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**' + - '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**' + - '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**' + - '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**' + #- '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**' + - '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**' + - '!Orm/Xtensive.Orm.Tests.Sql/**.csproj' + # ability to trigger on demand + - 'TestFileForBuildServerTests.txt' + +# new commits with the same key will cancel previously run workflows +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + actions: read + checks: write + +jobs: + test_on_mssql2025: + name: Tests on MS SQL Server 2025 + strategy: + matrix: + net: [ 'net8.0' ] + # For security reasons we allow test runs either for pushes from the team or for pull-requests after their changes were seen and approved by someone + # + # push filter - to cover pushes from the team to main branch of major version + # first 'pull_request_review' filter - to cover external pull-requests, since there are major security concerns about content of pull-request we cannot allow auto-runs of tests + # second 'pull_request_review' - to cover internal pull-requests that were not covered by 'on push' trigger + # + if: | + github.event_name == 'push' + || (github.event_name == 'pull_request_review' + && github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name + && startsWith(github.event.pull_request.base.ref, 'master') + && github.event.review.state == 'approved') + || (github.event_name == 'pull_request' + && github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name + && !startsWith(github.head_ref, 'master-')) + uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master + with: + storage: mssql2025 + build_config: Release + target_framework: ${{ matrix.net }} + test_output_verbosity: minimal + test_run_timeout: 50 + run_main: true + run_sql: true + run_extensions: true + publish_raw_results: false \ No newline at end of file diff --git a/.github/workflows/dispatched-mssql-tests.yml b/.github/workflows/dispatched-mssql-tests.yml index e6dfe586d..b73cb40a2 100644 --- a/.github/workflows/dispatched-mssql-tests.yml +++ b/.github/workflows/dispatched-mssql-tests.yml @@ -28,6 +28,11 @@ on: type: boolean default: false required: true + mssql2022: + description: 'MS SQL Server 2025' + type: boolean + default: true + required: true # new commits with the same key will cancel previously run workflows concurrency: @@ -99,3 +104,23 @@ jobs: run_sql: true run_extensions: true publish_raw_results: true + + test_on_mssql2025: + name: Tests on MS SQL Server 2025 + if: ${{ inputs.mssql2025 }} + strategy: + matrix: + net: [ 'net8.0', 'net10.0' ] + uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master + with: + storage: mssql2025 + build_config: Release + target_framework: ${{ matrix.net }} + specific_sha: ${{ inputs.specific_sha }} + show_all_fails: ${{ fromJSON(inputs.show_all_fails) }} + test_output_verbosity: minimal + test_run_timeout: 50 + run_main: true + run_sql: true + run_extensions: true + publish_raw_results: true \ No newline at end of file From 6acdd73da03120d0bd6343a8be54476cbcc855e2 Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Tue, 24 Mar 2026 14:05:11 +0500 Subject: [PATCH 4/4] Supported database list updated --- ReadMe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ReadMe.md b/ReadMe.md index 260397aa0..067b04ca6 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -15,7 +15,7 @@ If you forked the repository then make sure that this fix will propagate to your DataObjects.Net is a persistence and object-relational mapping framework for the Microsoft .NET. It allows developers to define persistent objects as well as business logic directly in C#, Visual Basic or F#. The persistent objects can be retrieved by LINQ queries. Persistent data can be stored in SQL Servers. In contrast to many other ORM frameworks the database model is generated and maintained automatically. Supported databases: -- MS SQL Server 2016, 2017, 2019, 2022 +- MS SQL Server 2016, 2017, 2019, 2022, 2025 - MS Azure SQL Database - Oracle 10g, 11g - PostgreSQL 11, 12, 13, 14, 15, 16, 17, 18