diff --git a/.github/workflows/docs-prs.yml b/.github/workflows/docs-prs.yml
index b03249c709..7ed9f9b50d 100644
--- a/.github/workflows/docs-prs.yml
+++ b/.github/workflows/docs-prs.yml
@@ -11,7 +11,7 @@ on:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
- node_version: 20.x
+ node_version: 24.x
NUKE_TELEMETRY_OPTOUT: true
jobs:
@@ -19,7 +19,7 @@ jobs:
name: "linting, spell check and build"
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
name: Check out the code
- name: Lint Code Base
@@ -27,7 +27,7 @@ jobs:
with:
args: "--disable MD009 -- docs/**/*.md"
- - uses: actions/setup-node@v4
+ - uses: actions/setup-node@v6
name: Install Node.js
with:
node-version: ${{ env.node_version }}
@@ -41,17 +41,10 @@ jobs:
- name: Install .NET 8.0.x
uses: actions/setup-dotnet@v3
with:
- dotnet-version: 8.0.x
-
- - name: Install .NET 9.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 9.0.x
-
- - name: Install .NET 10.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 10.0.x
+ dotnet-version: |
+ 8.0.x
+ 9.0.x
+ 10.0.x
- name: Build docs
run: ./build.sh docs-build
\ No newline at end of file
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 00cee805a7..52757bd13a 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -14,7 +14,7 @@ on:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
- node_version: 20.x
+ node_version: 24.x
NUKE_TELEMETRY_OPTOUT: true
jobs:
@@ -30,27 +30,20 @@ jobs:
os: [ ubuntu-latest ]
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- name: Install Node.js
- uses: actions/setup-node@v4
+ uses: actions/setup-node@v6
with:
node-version: ${{ env.node_version }}
- name: Install .NET 8.0.x
- uses: actions/setup-dotnet@v3
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: 8.0.x
-
- - name: Install .NET 9.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 9.0.x
-
- - name: Install .NET 10.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 10.0.x
+ dotnet-version: |
+ 8.0.x
+ 9.0.x
+ 10.0.x
- name: Build & Deploy docs preview
run: |
diff --git a/.github/workflows/on-manual-do-nuget-publish.yml b/.github/workflows/on-manual-do-nuget-publish.yml
index 3242c49e2b..32d132dbaf 100644
--- a/.github/workflows/on-manual-do-nuget-publish.yml
+++ b/.github/workflows/on-manual-do-nuget-publish.yml
@@ -14,22 +14,15 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- - name: Install .NET 8.0.x
- uses: actions/setup-dotnet@v3
+ - name: Install .NET
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: 8.0.x
-
- - name: Install .NET 9.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 9.0.x
-
- - name: Install .NET 10.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 10.0.x
+ dotnet-version: |
+ 8.0.x
+ 9.0.x
+ 10.0.x
- name: Install .NET Aspire workload
run: |
diff --git a/.github/workflows/on-push-do-ci-build-pg15-jsonnet.yml b/.github/workflows/on-push-do-ci-build-pg15-jsonnet.yml
index 6008ebf132..ded47763e5 100644
--- a/.github/workflows/on-push-do-ci-build-pg15-jsonnet.yml
+++ b/.github/workflows/on-push-do-ci-build-pg15-jsonnet.yml
@@ -1,4 +1,4 @@
-name: build_net8.0 pg15 Json.NET
+name: Build & Test - NET8 - PG15 - Newtonsoft
on:
push:
@@ -21,11 +21,11 @@ on:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
- node_version: 16.x
+ node_version: 24.x
pg_db: marten_testing
pg_user: postgres
CONFIGURATION: Release
- FRAMEWORK: net9.0
+ FRAMEWORK: net8.0
DISABLE_TEST_PARALLELIZATION: true
DEFAULT_SERIALIZER: "Newtonsoft"
NUKE_TELEMETRY_OPTOUT: true
@@ -52,22 +52,15 @@ jobs:
--user postgres
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- - name: Install .NET 8.0.x
- uses: actions/setup-dotnet@v3
+ - name: Install .NET
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: 8.0.x
-
- - name: Install .NET 9.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 9.0.x
-
- - name: Install .NET 10.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 10.0.x
+ dotnet-version: |
+ 8.0.x
+ 9.0.x
+ 10.0.x
- name: Install .NET Aspire workload
run: |
@@ -75,7 +68,7 @@ jobs:
dotnet workload install aspire
- name: Install Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v6
with:
node-version: ${{ env.node_version }}
diff --git a/.github/workflows/on-push-do-ci-build-pgLatest-systemtextjson.yml b/.github/workflows/on-push-do-ci-build-pgLatest-systemtextjson.yml
index 40b16e0610..3101f9c041 100644
--- a/.github/workflows/on-push-do-ci-build-pgLatest-systemtextjson.yml
+++ b/.github/workflows/on-push-do-ci-build-pgLatest-systemtextjson.yml
@@ -1,4 +1,4 @@
-name: build_net7.0 pgLatest System.Text.Json
+name: Build & Test - NET10 - PGLatest - System.Text.Json
on:
push:
@@ -21,11 +21,11 @@ on:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
- node_version: 16.x
+ node_version: 24.x
pg_db: marten_testing
pg_user: postgres
CONFIGURATION: Release
- FRAMEWORK: net9.0
+ FRAMEWORK: net10.0
DISABLE_TEST_PARALLELIZATION: true
DEFAULT_SERIALIZER: "SystemTextJson"
NUKE_TELEMETRY_OPTOUT: true
@@ -52,22 +52,15 @@ jobs:
--user postgres
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v6
- - name: Install .NET 8.0.x
- uses: actions/setup-dotnet@v3
+ - name: Install .NET
+ uses: actions/setup-dotnet@v5
with:
- dotnet-version: 8.0.x
-
- - name: Install .NET 9.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 9.0.x
-
- - name: Install .NET 10.0.x
- uses: actions/setup-dotnet@v3
- with:
- dotnet-version: 10.0.x
+ dotnet-version: |
+ 8.0.x
+ 9.0.x
+ 10.0.x
- name: Install .NET Aspire workload
run: |
@@ -75,7 +68,7 @@ jobs:
dotnet workload install aspire
- name: Install Node.js
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v6
with:
node-version: ${{ env.node_version }}
diff --git a/build/build.cs b/build/build.cs
index e103f221dc..488363fb46 100644
--- a/build/build.cs
+++ b/build/build.cs
@@ -4,6 +4,7 @@
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading;
+using System.Threading.Tasks;
using Nuke.Common;
using Nuke.Common.IO;
using Nuke.Common.ProjectModel;
@@ -20,7 +21,7 @@ class Build : NukeBuild
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
- [Solution] readonly Solution Solution;
+ [Solution(GenerateProjects = true)] readonly Solution Solution;
[Parameter] readonly bool DisableTestParallelization = true;
[Parameter]readonly string Framework;
[Parameter] readonly string Profile;
@@ -55,7 +56,7 @@ class Build : NukeBuild
Target NpmInstall => _ => _
.Executes(() => NpmTasks.NpmInstall(c => c
- .SetProcessArgumentConfigurator(args => args.Add("--loglevel=error"))));
+ .AddProcessAdditionalArguments("--loglevel=error")));
Target Compile => _ => _
.DependsOn(Restore)
@@ -213,7 +214,7 @@ class Build : NukeBuild
.Executes(() =>
{
// It's actually important to do a codegen write a 2nd time to prevent a temporary bug
- var codegenCommands = new[] { "codegen delete", "codegen write", "codegen test", "codegen write" };
+ var codegenCommands = new string[][] { ["codegen", "delete"], ["codegen", "write"], ["codegen","test"], ["codegen","write"] };
foreach (var command in codegenCommands)
{
DotNetRun(s => s
@@ -233,10 +234,10 @@ class Build : NukeBuild
});
Target InitDb => _ => _
- .Executes(() =>
+ .Executes(async () =>
{
ProcessTasks.StartProcess("docker", "compose up -d");
- WaitForDatabaseToBeReady();
+ await WaitForDatabaseToBeReady();
});
Target InstallMdSnippets => _ => _
@@ -371,7 +372,7 @@ class Build : NukeBuild
}
}
- var marten = Solution.GetProject("Marten").Path;
+ var marten = Solution.Marten.Path;
foreach (var nuget in Nugets)
{
DotNet($"remove {marten} package {nuget}");
@@ -388,7 +389,7 @@ class Build : NukeBuild
}
}
- var marten = Solution.GetProject("Marten").Path;
+ var marten = Solution.Marten.Path;
foreach (var nuget in Nugets)
{
DotNet($"add {marten} package {nuget} --prerelease");
@@ -403,7 +404,7 @@ private void addProject(string repository, string projectName)
if (Nugets.Contains(projectName))
{
- var marten = Solution.GetProject("Marten").Path;
+ var marten = Solution.Marten.Path;
DotNet($"add {marten} reference {path}");
}
}
@@ -414,7 +415,7 @@ private void removeProject(string repository, string projectName)
if (Nugets.Contains(projectName))
{
- var marten = Solution.GetProject("Marten").Path;
+ var marten = Solution.Marten.Path;
DotNet($"remove {marten} reference {path}");
}
@@ -424,23 +425,21 @@ private void removeProject(string repository, string projectName)
}
- private void WaitForDatabaseToBeReady()
+ private async Task WaitForDatabaseToBeReady()
{
var attempt = 0;
while (attempt < 10)
try
{
- using (var conn = new Npgsql.NpgsqlConnection(ConnectionString + ";Pooling=false"))
- {
- conn.Open();
+ await using var conn = new Npgsql.NpgsqlConnection(ConnectionString + ";Pooling=false");
+ await conn.OpenAsync();
- var cmd = conn.CreateCommand();
- cmd.CommandText = "SELECT 1";
- cmd.ExecuteNonQuery();
+ var cmd = conn.CreateCommand();
+ cmd.CommandText = "SELECT 1";
+ await cmd.ExecuteNonQueryAsync();
- Log.Information("Postgresql is up and ready!");
- break;
- }
+ Log.Information("Postgresql is up and ready!");
+ break;
}
catch (Exception ex)
{
diff --git a/build/build.csproj b/build/build.csproj
index 116e6d32d1..d8a64286c7 100644
--- a/build/build.csproj
+++ b/build/build.csproj
@@ -2,7 +2,7 @@
Exe
- net8.0
+ net10.0
CS0649;CS0169;CA1050;CA1822;CA2211;IDE1006
..
@@ -12,9 +12,9 @@
-
-
-
+
+
+