Skip to content

Commit 14cf7d3

Browse files
Feature/net10 (#636)
* Upgrade to .NET 10, update packages, and modernize code * Upgrade .NET SDK from 9.0 to 10.0 in workflows and Dockerfile * Add USER directive to Dockerfile for non-root execution * Add StaticWebAssetBasePath to use project name
1 parent 6b53e68 commit 14cf7d3

File tree

142 files changed

+673
-671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

142 files changed

+673
-671
lines changed

.github/workflows/aspnetcore.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- name: Setup .NET Core
1313
uses: actions/setup-dotnet@v4
1414
with:
15-
dotnet-version: 9.0.x
15+
dotnet-version: 10.0.x
1616
- name: Install .NET Aspire workload
1717
run: dotnet workload install aspire
1818
- name: Restore

.github/workflows/copilot-setup-steps.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
- name: Checkout code
2020
uses: actions/checkout@v4
2121
with:
22-
lfs: true # jeśli używasz Git LFS
22+
lfs: true
2323

24-
- name: Setup .NET 9 SDK
24+
- name: Setup .NET 10 SDK
2525
uses: actions/setup-dotnet@v3
2626
with:
27-
dotnet-version: '9.0.x'
27+
dotnet-version: '10.0.x'

.github/workflows/docker-image-pr.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ jobs:
2525
for i in {1..10}; do
2626
nc -z localhost 27017 && echo "MongoDB is up" && break
2727
echo "Retrying in 3 seconds..."
28+
echo "Container logs:"
29+
docker logs grandnode2-container --tail 20
2830
sleep 3
2931
done
3032
@@ -79,12 +81,21 @@ jobs:
7981
else
8082
echo "Received HTTP response code: $RESPONSE. Retrying in 3 seconds..."
8183
fi
84+
echo "Container logs:"
85+
docker logs grandnode2-container --tail 30
8286
sleep 3
8387
done
8488
echo "Application did not start successfully. Final response code: $RESPONSE"
8589
exit 1
86-
90+
91+
- name: Show container logs
92+
run: |
93+
echo "=== Full container logs ==="
94+
docker logs grandnode2-container
95+
echo "=== Container status ==="
96+
docker inspect grandnode2-container --format='{{.State.Status}} - Exit: {{.State.ExitCode}}'
97+
8798
- name: Stop and remove the container
8899
run: |
89100
docker stop grandnode2-container
90-
docker rm grandnode2-container
101+
docker rm grandnode2-container

.github/workflows/grandnode.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup .NET Core
1818
uses: actions/setup-dotnet@v4
1919
with:
20-
dotnet-version: 9.0.x
20+
dotnet-version: 10.0.x
2121
- name: Create mongoDB Docker container
2222
run: sudo docker run -d -p 27017:27017 mongo:latest
2323
- name: Install .NET Aspire workload

Directory.Packages.props

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -3,80 +3,80 @@
33
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
44
</PropertyGroup>
55
<ItemGroup>
6-
<PackageVersion Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.3.0" />
7-
<PackageVersion Include="ExcelMapper" Version="5.2.598" />
6+
<PackageVersion Include="Azure.Monitor.OpenTelemetry.AspNetCore" Version="1.4.0" />
7+
<PackageVersion Include="ExcelMapper" Version="6.0.615" />
88
<PackageVersion Include="Microsoft.AspNetCore.Http" Version="2.3.0" />
9-
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.9" />
10-
<PackageVersion Include="Microsoft.FeatureManagement.AspNetCore" Version="4.3.0" />
9+
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.1" />
10+
<PackageVersion Include="Microsoft.FeatureManagement.AspNetCore" Version="4.4.0" />
1111
<PackageVersion Include="NPOI" Version="2.7.5" />
12-
<PackageVersion Include="Scalar.AspNetCore" Version="2.8.10" />
13-
<PackageVersion Include="Scryber.Core" Version="6.0.4-beta" />
14-
<PackageVersion Include="Scryber.Core.OpenType" Version="6.1.0-beta" />
15-
<PackageVersion Include="MailKit" Version="4.14.0" />
16-
<PackageVersion Include="AWSSDK.Core" Version="4.0.0.32" />
17-
<PackageVersion Include="AWSSDK.S3" Version="4.0.7.7" />
18-
<PackageVersion Include="Azure.Storage.Blobs" Version="12.25.1" />
19-
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.11" />
12+
<PackageVersion Include="Scalar.AspNetCore" Version="2.11.10" />
13+
<PackageVersion Include="Scryber.Core" Version="9.2.0.2" />
14+
<PackageVersion Include="Scryber.Core.OpenType" Version="9.2.0" />
15+
<PackageVersion Include="MailKit" Version="4.14.1" />
16+
<PackageVersion Include="AWSSDK.Core" Version="4.0.3.6" />
17+
<PackageVersion Include="AWSSDK.S3" Version="4.0.16.1" />
18+
<PackageVersion Include="Azure.Storage.Blobs" Version="12.26.0" />
19+
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.12" />
2020
<PackageVersion Include="SkiaSharp" Version="3.119.1" />
2121
<PackageVersion Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="3.119.1" />
2222
<PackageVersion Include="LiteDB" Version="5.0.21" />
23-
<PackageVersion Include="MongoDB.Bson" Version="3.5.0" />
24-
<PackageVersion Include="MongoDB.Driver" Version="3.5.0" />
23+
<PackageVersion Include="MongoDB.Bson" Version="3.5.2" />
24+
<PackageVersion Include="MongoDB.Driver" Version="3.5.2" />
2525
<PackageVersion Include="DotLiquid" Version="2.3.197" />
26-
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.0.0" />
26+
<PackageVersion Include="FluentValidation.DependencyInjectionExtensions" Version="12.1.1" />
2727
<PackageVersion Include="GoogleAuthenticator" Version="3.2.0" />
2828
<PackageVersion Include="Microsoft.Azure.AppConfiguration.AspNetCore" Version="8.4.0" />
29-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.9" />
30-
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="9.0.9" />
31-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.9" />
32-
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="9.0.9" />
29+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.1" />
30+
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.1" />
31+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.1" />
32+
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="10.0.1" />
3333
<PackageVersion Include="AutoMapper" Version="14.0.0" />
34-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
35-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.14.0" />
34+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
35+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.0.0" />
3636
<PackageVersion Include="MediatR" Version="12.5.0" />
37-
<PackageVersion Include="Scrutor" Version="6.1.0" />
38-
<PackageVersion Include="StackExchange.Redis" Version="2.9.25" />
39-
<PackageVersion Include="FluentValidation" Version="12.0.0" />
40-
<PackageVersion Include="Microsoft.AspNetCore.JsonPatch" Version="9.0.9" />
41-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="9.0.9" />
42-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Facebook" Version="9.0.9" />
43-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="9.0.9" />
44-
<PackageVersion Include="Braintree" Version="5.35.0" />
45-
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.9" />
46-
<PackageVersion Include="System.Linq.Dynamic.Core" Version="1.6.8" />
37+
<PackageVersion Include="Scrutor" Version="7.0.0" />
38+
<PackageVersion Include="StackExchange.Redis" Version="2.10.1" />
39+
<PackageVersion Include="FluentValidation" Version="12.1.1" />
40+
<PackageVersion Include="Microsoft.AspNetCore.JsonPatch" Version="10.0.1" />
41+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="10.0.1" />
42+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Facebook" Version="10.0.1" />
43+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.Google" Version="10.0.1" />
44+
<PackageVersion Include="Braintree" Version="5.38.0" />
45+
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="10.0.1" />
46+
<PackageVersion Include="System.Linq.Dynamic.Core" Version="1.7.1" />
4747
<PackageVersion Include="System.Xml.XPath.XmlDocument" Version="4.7.0" />
48-
<PackageVersion Include="Stripe.net" Version="49.0.0" />
48+
<PackageVersion Include="Stripe.net" Version="50.1.0" />
4949
<PackageVersion Include="elFinder.Net.AspNetCore" Version="1.5.0" />
5050
<PackageVersion Include="elFinder.Net.Core" Version="1.5.0" />
5151
<PackageVersion Include="elFinder.Net.Drivers.FileSystem" Version="1.5.0" />
5252
<PackageVersion Include="Azure.Extensions.AspNetCore.DataProtection.Blobs" Version="1.5.1" />
5353
<PackageVersion Include="Azure.Extensions.AspNetCore.DataProtection.Keys" Version="1.6.1" />
54-
<PackageVersion Include="Azure.Identity" Version="1.16.0" />
54+
<PackageVersion Include="Azure.Identity" Version="1.17.1" />
5555
<PackageVersion Include="Flurl.Http" Version="4.0.2" />
56-
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="9.0.9" />
57-
<PackageVersion Include="NetEscapades.AspNetCore.SecurityHeaders" Version="1.2.0" />
56+
<PackageVersion Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="10.0.1" />
57+
<PackageVersion Include="NetEscapades.AspNetCore.SecurityHeaders" Version="1.3.1" />
5858
<PackageVersion Include="Wangkanai.Detection" Version="8.20.0" />
59-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="9.0.9" />
60-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
59+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="10.0.1" />
60+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
6161
<PackageVersion Include="Moq" Version="4.20.72" />
62-
<PackageVersion Include="MSTest.TestAdapter" Version="3.11.0" />
63-
<PackageVersion Include="MSTest.TestFramework" Version="3.11.0" />
62+
<PackageVersion Include="MSTest.TestAdapter" Version="4.0.2" />
63+
<PackageVersion Include="MSTest.TestFramework" Version="4.0.2" />
6464
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
6565
<PackageVersion Include="NUnit" Version="4.4.0" />
66-
<PackageVersion Include="Aspire.Hosting.AppHost" Version="9.5.1" />
67-
<PackageVersion Include="Aspire.Hosting.MongoDB" Version="9.5.1" />
68-
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="9.9.0" />
69-
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="9.5.1" />
70-
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.13.0" />
71-
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.13.0" />
72-
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.12.0" />
73-
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.12.0" />
74-
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.12.0" />
66+
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.1.0" />
67+
<PackageVersion Include="Aspire.Hosting.MongoDB" Version="13.1.0" />
68+
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.1.0" />
69+
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="10.1.0" />
70+
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.14.0" />
71+
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.14.0" />
72+
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.14.0" />
73+
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.14.0" />
74+
<PackageVersion Include="OpenTelemetry.Instrumentation.Runtime" Version="1.14.0" />
7575
<PackageVersion Include="Aspire.Dashboard.Sdk.$(NETCoreSdkRuntimeIdentifier)" Version="9.0.0" />
7676
<PackageVersion Include="Aspire.Hosting.Orchestration.$(NETCoreSdkRuntimeIdentifier)" Version="9.0.0" />
7777
</ItemGroup>
7878
<ItemGroup>
79-
<PackageVersion Update="Aspire.Dashboard.Sdk.win-x64" Version="9.5.1" />
80-
<PackageVersion Update="Aspire.Hosting.Orchestration.win-x64" Version="9.5.1" />
79+
<PackageVersion Update="Aspire.Dashboard.Sdk.win-x64" Version="13.1.0" />
80+
<PackageVersion Update="Aspire.Hosting.Orchestration.win-x64" Version="13.1.0" />
8181
</ItemGroup>
8282
</Project>

Dockerfile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build stage
2-
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env
2+
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build-env
33
LABEL stage=build-env
44
WORKDIR /app
55

@@ -24,9 +24,14 @@ RUN for plugin in /app/Plugins/*; do \
2424
RUN dotnet publish /app/Web/Grand.Web/Grand.Web.csproj -c Release -o ./build/release -p:SourceRevisionId=$GIT_COMMIT -p:GitBranch=$GIT_BRANCH
2525

2626
# Runtime stage
27-
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS runtime
27+
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS runtime
2828

2929
EXPOSE 8080
3030
WORKDIR /app
3131
COPY --from=build-env /app/build/release .
32+
33+
RUN chown -R app:app /app/App_Data /app/wwwroot /app/Plugins
34+
35+
USER app
36+
3237
ENTRYPOINT ["dotnet", "Grand.Web.dll"]

azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ variables:
1313

1414
steps:
1515
- task: UseDotNet@2
16-
displayName: 'Install .NET Core SDK 9'
16+
displayName: 'Install .NET Core SDK 10'
1717
inputs:
18-
version: '9.0.x'
18+
version: '10.0.x'
1919

2020
- task: Bash@3
2121
displayName: Install .NET Aspire workload

global.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"sdk": {
3-
"version": "9.0.100",
4-
"rollForward": "latestFeature",
5-
"allowPrerelease": false
3+
"version": "10.0.100",
4+
"rollForward": "latestFeature"
65
}
7-
}
6+
}

src/Aspire/Aspire.AppHost/Aspire.AppHost.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
</ItemGroup>
2424
<ItemGroup>
2525
<ProjectReference Include="..\..\Web\Grand.Web.Admin\Grand.Web.Admin.csproj" />
26+
<ProjectReference Include="..\..\Web\Grand.Web.Store\Grand.Web.Store.csproj" />
2627
<ProjectReference Include="..\..\Web\Grand.Web.Vendor\Grand.Web.Vendor.csproj" />
2728
<ProjectReference Include="..\..\Web\Grand.Web\Grand.Web.csproj" />
2829
</ItemGroup>

src/Build/Grand.Common.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<PropertyGroup>
3-
<TargetFramework>net9.0</TargetFramework>
3+
<TargetFramework>net10.0</TargetFramework>
44
<LangVersion>latest</LangVersion>
55
<ImplicitUsings>true</ImplicitUsings>
66
</PropertyGroup>

0 commit comments

Comments
 (0)