From 33b6936f6208fb6afe244f2e4fc889b18d2e4490 Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Fri, 12 Jun 2026 14:01:27 +0100 Subject: [PATCH 1/3] Centralize NuGet package versions with Directory.Packages.props Migrated all package version management to Directory.Packages.props, removing explicit version numbers from .csproj files. Updated the solution and Dockerfiles to include the new props file. This change streamlines dependency management and ensures consistent package versions across all projects. --- Directory.Packages.props | 56 +++++++++++++++++++ .../SecurityService.BusinessLogic.csproj | 22 ++++---- .../SecurityService.Client.csproj | 4 +- .../SecurityService.Database.csproj | 12 ++-- ...yService.IntegrationTesting.Helpers.csproj | 8 +-- .../SecurityService.IntegrationTests.csproj | 30 +++++----- ...vice.OpenIdConnect.IntegrationTests.csproj | 32 +++++------ ...SecurityService.SqlServerMigrations.csproj | 4 +- .../SecurityService.UnitTests.csproj | 20 +++---- SecurityService.slnx | 3 + SecurityService/Dockerfile | 3 +- SecurityService/DockerfileWindows | 2 + SecurityService/SecurityService.csproj | 38 ++++++------- .../SecurityServiceTestUI.csproj | 10 ++-- 14 files changed, 153 insertions(+), 91 deletions(-) create mode 100644 Directory.Packages.props diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 00000000..4973e8e4 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,56 @@ + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SecurityService.BusinessLogic/SecurityService.BusinessLogic.csproj b/SecurityService.BusinessLogic/SecurityService.BusinessLogic.csproj index c8e39e83..b6740cb3 100644 --- a/SecurityService.BusinessLogic/SecurityService.BusinessLogic.csproj +++ b/SecurityService.BusinessLogic/SecurityService.BusinessLogic.csproj @@ -5,17 +5,17 @@ enable - - - - - - - - - - - + + + + + + + + + + + diff --git a/SecurityService.Client/SecurityService.Client.csproj b/SecurityService.Client/SecurityService.Client.csproj index 9259c32a..c15f78f8 100644 --- a/SecurityService.Client/SecurityService.Client.csproj +++ b/SecurityService.Client/SecurityService.Client.csproj @@ -6,8 +6,8 @@ - - + + diff --git a/SecurityService.Database/SecurityService.Database.csproj b/SecurityService.Database/SecurityService.Database.csproj index e062705c..59da7259 100644 --- a/SecurityService.Database/SecurityService.Database.csproj +++ b/SecurityService.Database/SecurityService.Database.csproj @@ -5,15 +5,15 @@ enable - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/SecurityService.IntegrationTesting.Helpers/SecurityService.IntegrationTesting.Helpers.csproj b/SecurityService.IntegrationTesting.Helpers/SecurityService.IntegrationTesting.Helpers.csproj index 8c4bc8a8..ede4733f 100644 --- a/SecurityService.IntegrationTesting.Helpers/SecurityService.IntegrationTesting.Helpers.csproj +++ b/SecurityService.IntegrationTesting.Helpers/SecurityService.IntegrationTesting.Helpers.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/SecurityService.IntegrationTests/SecurityService.IntegrationTests.csproj b/SecurityService.IntegrationTests/SecurityService.IntegrationTests.csproj index a28d4dab..2489cd78 100644 --- a/SecurityService.IntegrationTests/SecurityService.IntegrationTests.csproj +++ b/SecurityService.IntegrationTests/SecurityService.IntegrationTests.csproj @@ -8,32 +8,32 @@ - + - + - + - + - + - + - - - + + + - - - + + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/SecurityService.OpenIdConnect.IntegrationTests/SecurityService.OpenIdConnect.IntegrationTests.csproj b/SecurityService.OpenIdConnect.IntegrationTests/SecurityService.OpenIdConnect.IntegrationTests.csproj index 69277ac7..dd8ef583 100644 --- a/SecurityService.OpenIdConnect.IntegrationTests/SecurityService.OpenIdConnect.IntegrationTests.csproj +++ b/SecurityService.OpenIdConnect.IntegrationTests/SecurityService.OpenIdConnect.IntegrationTests.csproj @@ -8,29 +8,29 @@ - - - + - + - + - + - - - - - - - - + + + + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/SecurityService.SqlServerMigrations/SecurityService.SqlServerMigrations.csproj b/SecurityService.SqlServerMigrations/SecurityService.SqlServerMigrations.csproj index 2032d141..f5d5b4b4 100644 --- a/SecurityService.SqlServerMigrations/SecurityService.SqlServerMigrations.csproj +++ b/SecurityService.SqlServerMigrations/SecurityService.SqlServerMigrations.csproj @@ -5,11 +5,11 @@ enable - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/SecurityService.UnitTests/SecurityService.UnitTests.csproj b/SecurityService.UnitTests/SecurityService.UnitTests.csproj index 7981e113..a7424529 100644 --- a/SecurityService.UnitTests/SecurityService.UnitTests.csproj +++ b/SecurityService.UnitTests/SecurityService.UnitTests.csproj @@ -6,16 +6,16 @@ false - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/SecurityService.slnx b/SecurityService.slnx index 0bca031f..8ac20131 100644 --- a/SecurityService.slnx +++ b/SecurityService.slnx @@ -1,4 +1,7 @@ + + + diff --git a/SecurityService/Dockerfile b/SecurityService/Dockerfile index b8a823ed..d1460f56 100644 --- a/SecurityService/Dockerfile +++ b/SecurityService/Dockerfile @@ -13,7 +13,8 @@ COPY ["SecurityService.Database/SecurityService.Database.csproj", "SecurityServi COPY ["SecurityService.DataTransferObjects/SecurityService.DataTransferObjects.csproj", "SecurityService.DataTransferObjects/"] COPY ["SecurityService.Models/SecurityService.Models.csproj", "SecurityService.Models/"] COPY ["SecurityService.SqlServerMigrations/SecurityService.SqlServerMigrations.csproj", "SecurityService.SqlServerMigrations/"] - +COPY ["Directory.Packages.props", "."] +COPY . . RUN dotnet restore "SecurityService/SecurityService.csproj" COPY . . diff --git a/SecurityService/DockerfileWindows b/SecurityService/DockerfileWindows index 6c2b9355..a5975325 100644 --- a/SecurityService/DockerfileWindows +++ b/SecurityService/DockerfileWindows @@ -13,6 +13,8 @@ COPY ["SecurityService.Database/SecurityService.Database.csproj", "SecurityServi COPY ["SecurityService.DataTransferObjects/SecurityService.DataTransferObjects.csproj", "SecurityService.DataTransferObjects/"] COPY ["SecurityService.Models/SecurityService.Models.csproj", "SecurityService.Models/"] COPY ["SecurityService.SqlServerMigrations/SecurityService.SqlServerMigrations.csproj", "SecurityService.SqlServerMigrations/"] +COPY ["Directory.Packages.props", "."] +COPY . . RUN dotnet restore "SecurityService/SecurityService.csproj" COPY . . diff --git a/SecurityService/SecurityService.csproj b/SecurityService/SecurityService.csproj index 45ad9cbf..add7aad9 100644 --- a/SecurityService/SecurityService.csproj +++ b/SecurityService/SecurityService.csproj @@ -13,28 +13,28 @@ - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/SecurityServiceTestUI/SecurityServiceTestUI.csproj b/SecurityServiceTestUI/SecurityServiceTestUI.csproj index db57c900..71ff3fbc 100644 --- a/SecurityServiceTestUI/SecurityServiceTestUI.csproj +++ b/SecurityServiceTestUI/SecurityServiceTestUI.csproj @@ -7,11 +7,11 @@ - - - - - + + + + + From af60cd2cd53009788ef74d14ab3b75c7d7e906c5 Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Fri, 12 Jun 2026 14:13:20 +0100 Subject: [PATCH 2/3] Add COPY for Directory.Packages.props to Dockerfiles Included Directory.Packages.props in both Dockerfile and DockerfileWindows to ensure it is available during the restore and build steps of the .NET project. This supports proper dependency management and build consistency. --- SecurityServiceTestUI/Dockerfile | 2 ++ SecurityServiceTestUI/DockerfileWindows | 2 ++ 2 files changed, 4 insertions(+) diff --git a/SecurityServiceTestUI/Dockerfile b/SecurityServiceTestUI/Dockerfile index 4873cfb3..92aa7422 100644 --- a/SecurityServiceTestUI/Dockerfile +++ b/SecurityServiceTestUI/Dockerfile @@ -14,6 +14,8 @@ RUN sed -i "s|NUGET_TOKEN|${NUGET_TOKEN}|g" NuGet.Config COPY ["Certificates/*.*", "Certificates/"] COPY ["SecurityServiceTestUI/SecurityServiceTestUI.csproj", "SecurityServiceTestUI/"] +COPY ["Directory.Packages.props", "."] +COPY . . RUN dotnet restore "SecurityServiceTestUI/SecurityServiceTestUI.csproj" COPY . . WORKDIR "/src/SecurityServiceTestUI" diff --git a/SecurityServiceTestUI/DockerfileWindows b/SecurityServiceTestUI/DockerfileWindows index 87f733d7..43e5e0b2 100644 --- a/SecurityServiceTestUI/DockerfileWindows +++ b/SecurityServiceTestUI/DockerfileWindows @@ -9,6 +9,8 @@ WORKDIR /src COPY ["SecurityService/NuGet.Config", "."] COPY ["Certificates/*.*", "Certificates/"] COPY ["SecurityServiceTestUI/SecurityServiceTestUI.csproj", "SecurityServiceTestUI/"] +COPY ["Directory.Packages.props", "."] +COPY . . RUN dotnet restore "SecurityServiceTestUI/SecurityServiceTestUI.csproj" COPY . . WORKDIR "/src/SecurityServiceTestUI" From 5171ac5ad9290feacc8666aaa997a89bd5507bfd Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Fri, 12 Jun 2026 15:00:22 +0100 Subject: [PATCH 3/3] Update Edge headless options for improved CI stability Changed EdgeOptions in Hooks.cs to use --headless=new and added --no-sandbox, --disable-dev-shm-usage, and --disable-gpu for better compatibility and stability in headless and CI environments. --- .../Common/Hooks.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/SecurityService.OpenIdConnect.IntegrationTests/Common/Hooks.cs b/SecurityService.OpenIdConnect.IntegrationTests/Common/Hooks.cs index 7cc97e09..aa76cbf9 100644 --- a/SecurityService.OpenIdConnect.IntegrationTests/Common/Hooks.cs +++ b/SecurityService.OpenIdConnect.IntegrationTests/Common/Hooks.cs @@ -101,8 +101,11 @@ await Retry.For(async () => { EdgeOptions options = new EdgeOptions(); options.AcceptInsecureCertificates = true; - options.AddArguments("--headless"); + options.AddArguments("--headless=new"); options.AddArguments("--window-size=1280x1024"); + options.AddArguments("--no-sandbox"); + options.AddArguments("--disable-dev-shm-usage"); + options.AddArguments("--disable-gpu"); await Retry.For(async () => { this.WebDriver = new EdgeDriver(options);