Skip to content

Commit c6006e7

Browse files
authored
Merge pull request #460 from DataObjects-NET/master-add-mssql2025
Add MS SQL Server 2025 as supported for tests to be run and as officially supported storage version
2 parents 5a323f4 + 6acdd73 commit c6006e7

5 files changed

Lines changed: 215 additions & 2 deletions

File tree

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
name: ⚙📚 Automated MS SQL Server 2025 tests
2+
run-name: Tests on MS SQL Server 2025 tests triggered by '${{ github.event_name }}'. Run No ${{ github.run_number }}.
3+
4+
on:
5+
push:
6+
branches:
7+
- 'master'
8+
- 'master-*'
9+
paths:
10+
# containers
11+
- 'Containers/mssql/do-mssql-2025'
12+
- 'Containers/mssql/**.sh'
13+
- 'Containers/mssql/**.sql'
14+
# main project - most common part, that may have changes that affect
15+
- 'Orm/Xtensive.Orm/Orm/Providers/**'
16+
- 'Orm/Xtensive.Orm/Orm/Rse/**'
17+
- 'Orm/Xtensive.Orm/Orm/Upgrade/**'
18+
- 'Orm/Xtensive.Orm/Sql/**'
19+
# provider
20+
- 'Orm/Xtensive.Orm.SqlServer/**'
21+
- '!Orm/Xtensive.Orm.SqlServer/**.csproj'
22+
- '!Orm/Xtensive.Orm.SqlServer/NuGetContent/**'
23+
# main test project - any code change
24+
- 'Orm/Xtensive.Orm.Tests/Issues/**'
25+
- 'Orm/Xtensive.Orm.Tests/Storage/**'
26+
- 'Orm/Xtensive.Orm.Tests/Upgrade/**'
27+
# sql tests - general and provider-specific
28+
- 'Orm/Xtensive.Orm.Tests.Sql/**'
29+
- '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**'
30+
- '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**'
31+
- '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**'
32+
- '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**'
33+
- '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**'
34+
#- '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**'
35+
- '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**'
36+
- '!Orm/Xtensive.Orm.Tests.Sql/**.csproj'
37+
# ability to trigger on demand
38+
- 'TestFileForBuildServerTests.txt'
39+
pull_request:
40+
branches:
41+
- 'master'
42+
paths:
43+
# containers
44+
- 'Containers/mssql/do-mssql-2025'
45+
- 'Containers/mssql/**.sh'
46+
- 'Containers/mssql/**.sql'
47+
# main project - most common part, that may have changes that affect
48+
- 'Orm/Xtensive.Orm/Orm/Providers/**'
49+
- 'Orm/Xtensive.Orm/Orm/Rse/**'
50+
- 'Orm/Xtensive.Orm/Orm/Upgrade/**'
51+
- 'Orm/Xtensive.Orm/Sql/**'
52+
# provider
53+
- 'Orm/Xtensive.Orm.SqlServer/**'
54+
- '!Orm/Xtensive.Orm.SqlServer/**.csproj'
55+
- '!Orm/Xtensive.Orm.SqlServer/NuGetContent/**'
56+
# main test project - any code change
57+
- 'Orm/Xtensive.Orm.Tests/Issues/**'
58+
- 'Orm/Xtensive.Orm.Tests/Storage/**'
59+
- 'Orm/Xtensive.Orm.Tests/Upgrade/**'
60+
# sql tests - general and provider-specific
61+
- 'Orm/Xtensive.Orm.Tests.Sql/**'
62+
- '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**'
63+
- '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**'
64+
- '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**'
65+
- '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**'
66+
- '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**'
67+
#- '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**'
68+
- '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**'
69+
- '!Orm/Xtensive.Orm.Tests.Sql/**.csproj'
70+
# ability to trigger on demand
71+
- 'TestFileForBuildServerTests.txt'
72+
73+
pull_request_review:
74+
branches:
75+
- 'master'
76+
paths:
77+
# containers
78+
- 'Containers/mssql/do-mssql-2025'
79+
- 'Containers/mssql/**.sh'
80+
- 'Containers/mssql/**.sql'
81+
# main project - most common part, that may have changes that affect
82+
- 'Orm/Xtensive.Orm/Orm/Providers/**'
83+
- 'Orm/Xtensive.Orm/Orm/Rse/**'
84+
- 'Orm/Xtensive.Orm/Orm/Upgrade/**'
85+
- 'Orm/Xtensive.Orm/Sql/**'
86+
# provider
87+
- 'Orm/Xtensive.Orm.SqlServer/**'
88+
- '!Orm/Xtensive.Orm.SqlServer/**.csproj'
89+
- '!Orm/Xtensive.Orm.SqlServer/NuGetContent/**'
90+
# main test project - any code change
91+
- 'Orm/Xtensive.Orm.Tests/Issues/**'
92+
- 'Orm/Xtensive.Orm.Tests/Storage/**'
93+
- 'Orm/Xtensive.Orm.Tests/Upgrade/**'
94+
# sql tests - general and provider-specific
95+
- 'Orm/Xtensive.Orm.Tests.Sql/**'
96+
- '!Orm/Xtensive.Orm.Tests.Sql/Firebird/**'
97+
- '!Orm/Xtensive.Orm.Tests.Sql/MySQL/**'
98+
- '!Orm/Xtensive.Orm.Tests.Sql/Oracle/**'
99+
- '!Orm/Xtensive.Orm.Tests.Sql/PostgreSql/**'
100+
- '!Orm/Xtensive.Orm.Tests.Sql/Sqlite/**'
101+
#- '!Orm/Xtensive.Orm.Tests.Sql/SqlServer/**'
102+
- '!Orm/Xtensive.Orm.Tests.Sql/SqlServerCe/**'
103+
- '!Orm/Xtensive.Orm.Tests.Sql/**.csproj'
104+
# ability to trigger on demand
105+
- 'TestFileForBuildServerTests.txt'
106+
107+
# new commits with the same key will cancel previously run workflows
108+
concurrency:
109+
group: ${{ github.workflow }}-${{ github.ref }}
110+
cancel-in-progress: true
111+
112+
permissions:
113+
contents: read
114+
actions: read
115+
checks: write
116+
117+
jobs:
118+
test_on_mssql2025:
119+
name: Tests on MS SQL Server 2025
120+
strategy:
121+
matrix:
122+
net: [ 'net8.0' ]
123+
# 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
124+
#
125+
# push filter - to cover pushes from the team to main branch of major version
126+
# 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
127+
# second 'pull_request_review' - to cover internal pull-requests that were not covered by 'on push' trigger
128+
#
129+
if: |
130+
github.event_name == 'push'
131+
|| (github.event_name == 'pull_request_review'
132+
&& github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
133+
&& startsWith(github.event.pull_request.base.ref, 'master')
134+
&& github.event.review.state == 'approved')
135+
|| (github.event_name == 'pull_request'
136+
&& github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
137+
&& !startsWith(github.head_ref, 'master-'))
138+
uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master
139+
with:
140+
storage: mssql2025
141+
build_config: Release
142+
target_framework: ${{ matrix.net }}
143+
test_output_verbosity: minimal
144+
test_run_timeout: 50
145+
run_main: true
146+
run_sql: true
147+
run_extensions: true
148+
publish_raw_results: false

.github/workflows/dispatched-mssql-tests.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ on:
2828
type: boolean
2929
default: false
3030
required: true
31+
mssql2022:
32+
description: 'MS SQL Server 2025'
33+
type: boolean
34+
default: true
35+
required: true
3136

3237
# new commits with the same key will cancel previously run workflows
3338
concurrency:
@@ -99,3 +104,23 @@ jobs:
99104
run_sql: true
100105
run_extensions: true
101106
publish_raw_results: true
107+
108+
test_on_mssql2025:
109+
name: Tests on MS SQL Server 2025
110+
if: ${{ inputs.mssql2025 }}
111+
strategy:
112+
matrix:
113+
net: [ 'net8.0', 'net10.0' ]
114+
uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-dependant-tests.yml@master
115+
with:
116+
storage: mssql2025
117+
build_config: Release
118+
target_framework: ${{ matrix.net }}
119+
specific_sha: ${{ inputs.specific_sha }}
120+
show_all_fails: ${{ fromJSON(inputs.show_all_fails) }}
121+
test_output_verbosity: minimal
122+
test_run_timeout: 50
123+
run_main: true
124+
run_sql: true
125+
run_extensions: true
126+
publish_raw_results: true

Containers/mssql/do-mssql-2025

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
FROM mcr.microsoft.com/mssql/server:2025-latest
2+
USER root
3+
4+
# See https://github.com/microsoft/mssql-docker/blob/master/linux/preview/examples/mssql-agent-fts-ha-tools/Dockerfile
5+
# for details
6+
RUN export DEBIAN_FRONTEND=noninteractive
7+
RUN apt-get update
8+
9+
#Actualize time zone database
10+
RUN apt-get install -y tzdata
11+
RUN apt-get install -yq curl
12+
RUN apt-get install -yq apt-transport-https
13+
RUN apt-get install -y gnupg2
14+
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
15+
RUN curl https://packages.microsoft.com/config/ubuntu/24.04/mssql-server-2025.list | tee /etc/apt/sources.list.d/mssql-server.list
16+
RUN apt-get update
17+
RUN apt-get install -y mssql-server-fts
18+
RUN apt-get clean
19+
RUN rm -rf /var/lib/apt/lists
20+
21+
# Create a config directory
22+
RUN mkdir -p /usr/config
23+
WORKDIR /usr/config
24+
25+
# Bundle config source
26+
COPY configure-db.sh /usr/config/
27+
COPY entrypoint.sh /usr/config/
28+
COPY setup.sql /usr/config/
29+
30+
# Grant permissions for to our scripts to be executable
31+
RUN chmod +x /usr/config/entrypoint.sh
32+
RUN chmod +x /usr/config/configure-db.sh
33+
34+
ENTRYPOINT ["./entrypoint.sh"]

Orm/Xtensive.Orm.Tests.Framework/Orm.config

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,13 @@
1717

1818
<domain name="mssql2019"
1919
connectionUrl="sqlserver://dotest:dotest@localhost\DO_SQL2019:1419/DO-Tests?MultipleActiveResultSets=True" />
20-
20+
2121
<domain name="mssql2022"
2222
connectionUrl="sqlserver://dotest:dotest@localhost\DO_SQL2022:1422/DO-Tests?MultipleActiveResultSets=True" />
2323

24+
<domain name="mssql2025"
25+
connectionUrl="sqlserver://dotest:dotest@localhost\DO_SQL2022:1425/DO-Tests?MultipleActiveResultSets=True" />
26+
2427
<!-- A hook to have abitity to check and test newer, yet not supported, versions without adding them to the file -->
2528
<!-- This allows to override it in storage configuration files -->
2629
<domain name="mssqlnext"
@@ -135,6 +138,9 @@
135138
<domain name="mssql2022cs" provider="sqlserver"
136139
connectionString="Data Source=localhost\DO_SQL2022,1422;Initial Catalog=DO-Tests;User ID=dotest;Password=dotest;MultipleActiveResultSets=True;Encrypt=false" />
137140

141+
<domain name="mssql2025cs" provider="sqlserver"
142+
connectionString="Data Source=localhost\DO_SQL2025,1425;Initial Catalog=DO-Tests;User ID=dotest;Password=dotest;MultipleActiveResultSets=True;Encrypt=false" />
143+
138144
<!-- A hook to have abitity to check and test newer, yet not supported, versions without adding them to the file -->
139145
<!-- This allows to override it in storage configuration files -->
140146
<domain name="mssqlnextcs" provider="sqlserver"

ReadMe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ If you forked the repository then make sure that this fix will propagate to your
1515
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.
1616

1717
Supported databases:
18-
- MS SQL Server 2016, 2017, 2019, 2022
18+
- MS SQL Server 2016, 2017, 2019, 2022, 2025
1919
- MS Azure SQL Database
2020
- Oracle 10g, 11g
2121
- PostgreSQL 11, 12, 13, 14, 15, 16, 17, 18

0 commit comments

Comments
 (0)