diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 890ae92e..47bacc4c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v2 with: - dotnet-version: 9.x.x + dotnet-version: 10.x.x - name: Build run: dotnet build NBomber.sln diff --git a/README.md b/README.md index 25752337..1b01ee96 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ NBomber as a modern framework provides: - **Native Debug** - debug your tests using your favorite IDE (Visual Studio, VS Code, Rider) - [Informative Reports](https://nbomber.com/docs/reporting/reports): [HTML](https://nbomber.com/assets/reports/html_report.html) - Realtime reporting: - - [NBomber Studio](https://nbomber.com/docs/nbomber-studio/overview) - is a powerful management tool designed by NBomber. Monitor tests in real time with NBomber Studio and conduct detailed result analysis to identify trends. + - [NBomber Studio](https://nbomber.com/docs/nbomber-studio/overview) - is a powerful management tool designed by NBomber. Monitor tests in real time with NBomber Studio and conduct detailed result analysis to identify trends. Check out our [blog posts about NBomber Studio](https://nbomber.com/blog/tags/nbomber-studio-release). - [Reporting Sinks](https://nbomber.com/docs/nbomber/reporting-sinks) for integration with popular systems for real-time monitoring - [InfluxDB](https://nbomber.com/docs/reporting/realtime/influx-db) - [TimescaleDB](https://nbomber.com/docs/reporting/realtime/timescale) @@ -27,11 +27,11 @@ NBomber as a modern framework provides: - [HTTP](https://nbomber.com/docs/protocols/http), - [WebSockets](https://nbomber.com/docs/protocols/websockets), - [MQTT](https://nbomber.com/docs/protocols/mqtt), + - [AMQP](https://nbomber.com/docs/protocols/amqp) - [WebBrowser](https://nbomber.com/docs/protocols/webbrowser) - [Redis](https://github.com/PragmaticFlow/NBomber/tree/dev/examples/Demo/DB/Redis), - [SQLite](https://github.com/PragmaticFlow/NBomber/tree/dev/examples/Demo/DB/SQLiteDB), - MongoDB - - AMQP - gRPC - [Data Feed](https://nbomber.com/docs/nbomber/data) - inject real or fake data into your tests - [Distributed Cluster](https://nbomber.com/docs/cluster/overview) - run your load tests in distributed mode diff --git a/build.cake b/build.cake deleted file mode 100644 index 851936ba..00000000 --- a/build.cake +++ /dev/null @@ -1,215 +0,0 @@ -#addin nuget:?package=Cake.Git&version=0.21.0 - -using LibGit2Sharp; - -var target = Argument("target", "Default"); -var configuration = Argument("configuration", "Release"); - -var committerName = Argument("username", "cake build script"); -var committerEmail = Argument("email", "pragmaticflow.org@gmail.com"); -var committerPassword = Argument("password", ""); - -var solution = File("./NBomber.sln"); -var nbomberContractsProject = File("./src/NBomber.Contracts/NBomber.Contracts.fsproj"); -var nbomberProject = File("./src/NBomber/NBomber.fsproj"); -var nbomberVersion = XmlPeek(nbomberProject, "//Version"); - -var pluginsDir = Directory($"./.nbomber-plugins/{nbomberVersion}"); -var plugins = new[] -{ - new PluginInfo - { - GitUrl = "https://github.com/PragmaticFlow/NBomber.Http.git", - DirPath = pluginsDir + Directory("NBomber.Http"), - ProjPath = File("./src/NBomber.Http/NBomber.Http.fsproj"), - SolutionPath = File("./NBomber.Http.sln") - }, - new PluginInfo - { - GitUrl = "https://github.com/PragmaticFlow/NBomber.Sinks.InfluxDB.git", - DirPath = pluginsDir + Directory("NBomber.Sinks.InfluxDB"), - ProjPath = File("./src/NBomber.Sinks.InfluxDB/NBomber.Sinks.InfluxDB.fsproj"), - SolutionPath = File("./NBomber.Sinks.InfluxDB.sln") - } -}; - -Task("Clean") - .Does(() => -{ - CleanDirectories("./src/**/obj"); - CleanDirectories("./src/**/bin"); - CleanDirectories("./src/examples/**/obj"); - CleanDirectories("./src/examples/**/bin"); - CleanDirectories("./tests/**/obj"); - CleanDirectories("./tests/**/bin"); - CleanDirectories("./examples/**/obj"); - CleanDirectories("./examples/**/bin"); - CleanDirectories("./artifacts/"); -}); - -Task("Restore") - .IsDependentOn("Clean") - .Does(() => -{ - DotNetCoreRestore(solution); -}); - -Task("Build") - .IsDependentOn("Restore") - .Does(() => -{ - Information("NBomber Version: {0}", nbomberVersion); - - DotNetCoreBuild(solution, new DotNetCoreBuildSettings() - { - Configuration = configuration, - ArgumentCustomization = args => args.Append("--no-restore"), - }); -}); - -Task("Test") - .Does(() => -{ - var projects = GetFiles("./tests/**/*.fsproj"); - foreach(var project in projects) - { - Information("Testing project " + project); - - DotNetCoreTest(project.ToString(), - new DotNetCoreTestSettings() - { - Configuration = configuration, - NoBuild = true, - ArgumentCustomization = args => args.Append("--no-restore"), - }); - } -}); - -Task("Pack") - .IsDependentOn("Build") - .Does(() => -{ - // update plugin project version - Information("Updating NBomber.Contracts project version on '{0}'", nbomberVersion); - var pluginVersionXPath = "/Project/PropertyGroup/Version"; - XmlPoke(nbomberContractsProject, pluginVersionXPath, nbomberVersion); - - var settings = new DotNetCorePackSettings - { - OutputDirectory = "./artifacts/", - NoBuild = false, - IncludeSource = true, - IncludeSymbols = true, - Configuration = configuration, - ArgumentCustomization = args => args.Append("-p:SymbolPackageFormat=snupkg") - }; - - DotNetCorePack(nbomberContractsProject, settings); - DotNetCorePack(nbomberProject, settings); -}); - -Task("BuildPlugins") - .Does(() => -{ - if (DirectoryExists(pluginsDir)) - DeleteDirectory(pluginsDir, new DeleteDirectorySettings { Recursive = true, Force = true }); - - EnsureDirectoryExists(pluginsDir); - - foreach (var plugin in plugins) - { - var branchName = "dev"; - var projPath = plugin.GetAbsoluteProjPath(); - var slnPath = plugin.GetAbsoluteSolutionPath(); - - Information("Cloning {0} branch for repository {1} to directory {2}", - branchName, plugin.GitUrl, pluginsDir); - - GitClone(plugin.GitUrl, plugin.DirPath, new GitCloneSettings { BranchName = branchName }); - - // update plugin project version - Information("Updating plugin project version on '{0}'", nbomberVersion); - var pluginVersionXPath = "/Project/PropertyGroup/Version"; - XmlPoke(projPath, pluginVersionXPath, nbomberVersion); - - // update NBomber reference version - Information("Updating NBomber reference package on '{0}'", nbomberVersion); - var nbomberReferenceVersionXPath = "/Project/ItemGroup/PackageReference[@Include = 'NBomber']/@Version"; - XmlPoke(projPath, nbomberReferenceVersionXPath, nbomberVersion); - - // update appveyor.yml - Information("Updating appveyor.yml"); - var appveyorPath = System.IO.Path.Combine(plugin.DirPath, "appveyor.yml"); - var appveyorContent = System.IO.File.ReadAllLines(appveyorPath); - appveyorContent[0] = String.Format("version: {0}-{{build}}", nbomberVersion); - System.IO.File.WriteAllLines(appveyorPath, appveyorContent); - - // build and test plugin - Information("Build plugin solution"); - DotNetCoreBuild(slnPath, new DotNetCoreBuildSettings { Configuration = configuration }); - - // commit all changes - Information("Commiting all changes"); - GitAddAll(plugin.DirPath); - - try - { - // commit can fail in case of 0 changes - GitCommit(plugin.DirPath, committerName, committerEmail, String.Format("version: {0}", nbomberVersion)); - } - catch (Exception ex) - { - Warning(ex.ToString()); - } - } -}); - -Task("PublishPlugins") - .Does(() => -{ - foreach (var plugin in plugins) - { - Information("Publish plugin: '{0}'", plugin.DirPath); - GitPush(plugin.DirPath, committerName, committerPassword); - } -}); - -Task("MergePluginsToMaster") - .Does(() => -{ - if (DirectoryExists(pluginsDir)) - DeleteDirectory(pluginsDir, new DeleteDirectorySettings { Recursive = true, Force = true }); - - EnsureDirectoryExists(pluginsDir); - - foreach (var plugin in plugins) - { - Information("clone master branch for plugin: '{0}'", plugin.GitUrl); - GitClone(plugin.GitUrl, plugin.DirPath, new GitCloneSettings { BranchName = "master" }); - - Information("merge dev into master"); - using (var repo = new Repository(plugin.DirPath)) - { - var comitterInfo = new Signature(committerName, committerEmail, System.DateTime.UtcNow); - var mergeResult = repo.Merge(repo.Branches["remotes/origin/dev"], comitterInfo); - } - - Information("add tag"); - GitTag(plugin.DirPath, $"version-{nbomberVersion}"); - } -}); - -Task("Default") - .IsDependentOn("Build"); - -RunTarget(target); - -public class PluginInfo -{ - public string GitUrl { get; set; } - public ConvertableDirectoryPath DirPath { get; set; } - public ConvertableFilePath ProjPath { get; set; } - public ConvertableFilePath SolutionPath { get; set; } - public ConvertableFilePath GetAbsoluteProjPath () => DirPath + ProjPath; - public ConvertableFilePath GetAbsoluteSolutionPath () => DirPath + SolutionPath; -} diff --git a/build.ps1 b/build.ps1 deleted file mode 100644 index 3e4f57b3..00000000 --- a/build.ps1 +++ /dev/null @@ -1,234 +0,0 @@ -########################################################################## -# This is the Cake bootstrapper script for PowerShell. -# This file was downloaded from https://github.com/cake-build/resources -# Feel free to change this file to fit your needs. -########################################################################## - -<# - -.SYNOPSIS -This is a Powershell script to bootstrap a Cake build. - -.DESCRIPTION -This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) -and execute your Cake build script with the parameters you provide. - -.PARAMETER Script -The build script to execute. -.PARAMETER Target -The build script target to run. -.PARAMETER Configuration -The build configuration to use. -.PARAMETER Verbosity -Specifies the amount of information to be displayed. -.PARAMETER ShowDescription -Shows description about tasks. -.PARAMETER DryRun -Performs a dry run. -.PARAMETER Experimental -Uses the nightly builds of the Roslyn script engine. -.PARAMETER Mono -Uses the Mono Compiler rather than the Roslyn script engine. -.PARAMETER SkipToolPackageRestore -Skips restoring of packages. -.PARAMETER ScriptArgs -Remaining arguments are added here. - -.LINK -https://cakebuild.net - -#> - -[CmdletBinding()] -Param( - [string]$Script = "build.cake", - [string]$Target, - [string]$Configuration, - [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] - [string]$Verbosity, - [switch]$ShowDescription, - [Alias("WhatIf", "Noop")] - [switch]$DryRun, - [switch]$Experimental, - [switch]$Mono, - [switch]$SkipToolPackageRestore, - [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] - [string[]]$ScriptArgs -) - -[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null -function MD5HashFile([string] $filePath) -{ - if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) - { - return $null - } - - [System.IO.Stream] $file = $null; - [System.Security.Cryptography.MD5] $md5 = $null; - try - { - $md5 = [System.Security.Cryptography.MD5]::Create() - $file = [System.IO.File]::OpenRead($filePath) - return [System.BitConverter]::ToString($md5.ComputeHash($file)) - } - finally - { - if ($file -ne $null) - { - $file.Dispose() - } - } -} - -function GetProxyEnabledWebClient -{ - $wc = New-Object System.Net.WebClient - $proxy = [System.Net.WebRequest]::GetSystemWebProxy() - $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials - $wc.Proxy = $proxy - return $wc -} - -Write-Host "Preparing to run build script..." - -if(!$PSScriptRoot){ - $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent -} - -$TOOLS_DIR = Join-Path $PSScriptRoot "tools" -$ADDINS_DIR = Join-Path $TOOLS_DIR "Addins" -$MODULES_DIR = Join-Path $TOOLS_DIR "Modules" -$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" -$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" -$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" -$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" -$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" -$ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config" -$MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config" - -# Make sure tools folder exists -if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { - Write-Verbose -Message "Creating tools directory..." - New-Item -Path $TOOLS_DIR -Type directory | out-null -} - -# Make sure that packages.config exist. -if (!(Test-Path $PACKAGES_CONFIG)) { - Write-Verbose -Message "Downloading packages.config..." - try { - $wc = GetProxyEnabledWebClient - $wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { - Throw "Could not download packages.config." - } -} - -# Try find NuGet.exe in path if not exists -if (!(Test-Path $NUGET_EXE)) { - Write-Verbose -Message "Trying to find nuget.exe in PATH..." - $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) } - $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 - if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { - Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." - $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName - } -} - -# Try download NuGet.exe if not exists -if (!(Test-Path $NUGET_EXE)) { - Write-Verbose -Message "Downloading NuGet.exe..." - try { - $wc = GetProxyEnabledWebClient - $wc.DownloadFile($NUGET_URL, $NUGET_EXE) - } catch { - Throw "Could not download NuGet.exe." - } -} - -# Save nuget.exe path to environment to be available to child processed -$ENV:NUGET_EXE = $NUGET_EXE - -# Restore tools from NuGet? -if(-Not $SkipToolPackageRestore.IsPresent) { - Push-Location - Set-Location $TOOLS_DIR - - # Check for changes in packages.config and remove installed tools if true. - [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) - if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or - ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { - Write-Verbose -Message "Missing or changed package.config hash..." - Remove-Item * -Recurse -Exclude packages.config,nuget.exe - } - - Write-Verbose -Message "Restoring tools from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occurred while restoring NuGet tools." - } - else - { - $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" - } - Write-Verbose -Message ($NuGetOutput | out-string) - - Pop-Location -} - -# Restore addins from NuGet -if (Test-Path $ADDINS_PACKAGES_CONFIG) { - Push-Location - Set-Location $ADDINS_DIR - - Write-Verbose -Message "Restoring addins from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occurred while restoring NuGet addins." - } - - Write-Verbose -Message ($NuGetOutput | out-string) - - Pop-Location -} - -# Restore modules from NuGet -if (Test-Path $MODULES_PACKAGES_CONFIG) { - Push-Location - Set-Location $MODULES_DIR - - Write-Verbose -Message "Restoring modules from NuGet..." - $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`"" - - if ($LASTEXITCODE -ne 0) { - Throw "An error occurred while restoring NuGet modules." - } - - Write-Verbose -Message ($NuGetOutput | out-string) - - Pop-Location -} - -# Make sure that Cake has been installed. -if (!(Test-Path $CAKE_EXE)) { - Throw "Could not find Cake.exe at $CAKE_EXE" -} - - - -# Build Cake arguments -$cakeArguments = @("$Script"); -if ($Target) { $cakeArguments += "-target=$Target" } -if ($Configuration) { $cakeArguments += "-configuration=$Configuration" } -if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" } -if ($ShowDescription) { $cakeArguments += "-showdescription" } -if ($DryRun) { $cakeArguments += "-dryrun" } -if ($Experimental) { $cakeArguments += "-experimental" } -if ($Mono) { $cakeArguments += "-mono" } -$cakeArguments += $ScriptArgs - -# Start Cake -Write-Host "Running build script..." -&$CAKE_EXE $cakeArguments -exit $LASTEXITCODE diff --git a/build.sh b/build.sh deleted file mode 100644 index d66753e7..00000000 --- a/build.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -# Define default arguments. -SCRIPT="build.cake" -CAKE_ARGUMENTS=() - -# Parse arguments. -for i in "$@"; do - case $1 in - -s|--script) SCRIPT="$2"; shift ;; - --) shift; CAKE_ARGUMENTS+=("$@"); break ;; - *) CAKE_ARGUMENTS+=("$1") ;; - esac - shift -done - -# Restore Cake tool -dotnet tool restore - -if [ $? -ne 0 ]; then - echo "An error occured while installing Cake." - exit 1 -fi - -# Start Cake -dotnet tool run dotnet-cake "$SCRIPT" "${CAKE_ARGUMENTS[@]}" \ No newline at end of file diff --git a/examples/BookstoreSimulator/BookstoreSimulator.csproj b/examples/BookstoreSimulator/BookstoreSimulator.csproj index 76da0087..82da96bb 100644 --- a/examples/BookstoreSimulator/BookstoreSimulator.csproj +++ b/examples/BookstoreSimulator/BookstoreSimulator.csproj @@ -1,25 +1,11 @@  - net8.0 + net10.0 disable enable - - - true - - - all - - - low - - - NU1900;NU1901;NU1902;NU1903;NU1904 - - diff --git a/examples/Demo/Demo.csproj b/examples/Demo/Demo.csproj index f292e210..cb2e302f 100644 --- a/examples/Demo/Demo.csproj +++ b/examples/Demo/Demo.csproj @@ -2,23 +2,16 @@ Exe - net8.0 + net10.0 enable false true - true - - all - - low - - NU1900;NU1901;NU1902;NU1903;NU1904 @@ -107,20 +100,20 @@ - - + + - - - + + + - + - + diff --git a/examples/Demo/Features/RealtimeReporting/TimescaleDB/docker-compose.yml b/examples/Demo/Features/RealtimeReporting/TimescaleDB/docker-compose.yml index ff06cf17..7946ac44 100644 --- a/examples/Demo/Features/RealtimeReporting/TimescaleDB/docker-compose.yml +++ b/examples/Demo/Features/RealtimeReporting/TimescaleDB/docker-compose.yml @@ -1,32 +1,38 @@ services: - timescaledb: - image: timescale/timescaledb:2.24.0-pg17-oss - restart: always - command: postgres -c 'max_connections=500' - environment: - POSTGRES_DB: nb_studio_db - POSTGRES_USER: timescaledb - POSTGRES_PASSWORD: timescaledb - ports: - - "5432:5432" - volumes: - - metrics-data:/var/lib/postgresql/data + timescaledb: + image: timescale/timescaledb:2.25.0-pg18-oss + command: postgres -c 'max_connections=500' + restart: always + ports: + - "5432:5432" + volumes: + - nb_studio_data:/var/lib/postgresql/data + environment: + POSTGRES_DB: nb_studio_db + POSTGRES_USER: timescaledb + POSTGRES_PASSWORD: timescaledb + healthcheck: + test: [ "CMD-SHELL", "pg_isready -d 'user=timescaledb dbname=nb_studio_db'" ] + interval: 5s + timeout: 10s + retries: 5 + start_period: 5s - pgadmin: - image: dpage/pgadmin4 - restart: always - environment: - PGADMIN_DEFAULT_EMAIL: admin@admin.com - PGADMIN_DEFAULT_PASSWORD: admin - ports: - - "5051:80" - volumes: - - pgadmin-data:/var/lib/pgadmin + pgadmin: + image: dpage/pgadmin4 + restart: always + environment: + PGADMIN_DEFAULT_EMAIL: admin@admin.com + PGADMIN_DEFAULT_PASSWORD: admin + ports: + - "5051:80" + volumes: + - pgadmin-data:/var/lib/pgadmin volumes: - metrics-data: - driver: local + metrics-data: + driver: local - pgadmin-data: - driver: local + pgadmin-data: + driver: local diff --git a/examples/Demo/NBomber_Studio/docker-compose.yml b/examples/Demo/NBomber_Studio/docker-compose.yml index 5c6ce920..6ebac71f 100644 --- a/examples/Demo/NBomber_Studio/docker-compose.yml +++ b/examples/Demo/NBomber_Studio/docker-compose.yml @@ -1,7 +1,7 @@ services: timescaledb: - image: timescale/timescaledb:2.24.0-pg17-oss + image: timescale/timescaledb:2.25.0-pg18-oss command: postgres -c 'max_connections=500' restart: always ports: @@ -20,7 +20,7 @@ start_period: 5s nbomber-studio: - image: nbomberdocker/nbomber-studio:0.5.2 + image: nbomberdocker/nbomber-studio:latest ports: - "5333:8080" depends_on: diff --git a/examples/GrpcClient/GrpcClient.csproj b/examples/GrpcClient/GrpcClient.csproj index bc1553ee..8d84d01d 100644 --- a/examples/GrpcClient/GrpcClient.csproj +++ b/examples/GrpcClient/GrpcClient.csproj @@ -2,25 +2,11 @@ Exe - net8.0 + net10.0 enable disable - - - true - - - all - - - low - - - NU1900;NU1901;NU1902;NU1903;NU1904 - - diff --git a/examples/GrpcServerSimulator/GrpcServerSimulator.csproj b/examples/GrpcServerSimulator/GrpcServerSimulator.csproj index 2b97e6a3..4131a832 100644 --- a/examples/GrpcServerSimulator/GrpcServerSimulator.csproj +++ b/examples/GrpcServerSimulator/GrpcServerSimulator.csproj @@ -1,36 +1,22 @@  - - net8.0 - disable - enable - - - - - true - - - all - - - low - - - NU1900;NU1901;NU1902;NU1903;NU1904 - - - - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + net10.0 + disable + enable + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + diff --git a/examples/HttpApiSimulator/HttpApiSimulator.csproj b/examples/HttpApiSimulator/HttpApiSimulator.csproj index 9d9dcef6..f993f5d4 100644 --- a/examples/HttpApiSimulator/HttpApiSimulator.csproj +++ b/examples/HttpApiSimulator/HttpApiSimulator.csproj @@ -1,36 +1,22 @@ - - net8.0 - disable - enable - - - - true - - - all - - - low - - - NU1900;NU1901;NU1902;NU1903;NU1904 + net10.0 + disable + enable - - - - - - - - - - + + + + + + + + + + diff --git a/examples/K8sDemo/Dockerfile b/examples/K8sDemo/Dockerfile index 7de2a7b2..1ee34d31 100644 --- a/examples/K8sDemo/Dockerfile +++ b/examples/K8sDemo/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base +FROM mcr.microsoft.com/dotnet/runtime:10.0 AS base USER $APP_UID WORKDIR /app -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src COPY ["examples/K8sDemo/K8sDemo.csproj", "examples/K8sDemo/"] diff --git a/examples/K8sDemo/K8sDemo.csproj b/examples/K8sDemo/K8sDemo.csproj index 6e8784b4..8bb522a3 100644 --- a/examples/K8sDemo/K8sDemo.csproj +++ b/examples/K8sDemo/K8sDemo.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable enable Linux @@ -10,20 +10,6 @@ true - - - true - - - all - - - low - - - NU1900;NU1901;NU1902;NU1903;NU1904 - - .dockerignore @@ -31,8 +17,8 @@ - - + + diff --git a/examples/WebSocketsSimulator/WebSocketsSimulator.csproj b/examples/WebSocketsSimulator/WebSocketsSimulator.csproj index c8f7ccfe..1c4d98bd 100644 --- a/examples/WebSocketsSimulator/WebSocketsSimulator.csproj +++ b/examples/WebSocketsSimulator/WebSocketsSimulator.csproj @@ -1,25 +1,11 @@ - net8.0 + net10.0 disable enable - - - true - - - all - - - low - - - NU1900;NU1901;NU1902;NU1903;NU1904 - - diff --git a/examples/xUnitExample/xUnitExample.csproj b/examples/xUnitExample/xUnitExample.csproj index e850814d..90f54cab 100644 --- a/examples/xUnitExample/xUnitExample.csproj +++ b/examples/xUnitExample/xUnitExample.csproj @@ -1,15 +1,15 @@ - net8.0 + net10.0 enable false - - + + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/performance/NBomber.Benchmarks/NBomber.Benchmarks.fsproj b/performance/NBomber.Benchmarks/NBomber.Benchmarks.fsproj index 8ab97fde..a06c5ad4 100644 --- a/performance/NBomber.Benchmarks/NBomber.Benchmarks.fsproj +++ b/performance/NBomber.Benchmarks/NBomber.Benchmarks.fsproj @@ -2,7 +2,7 @@ Exe - net7.0 + net10.0 diff --git a/performance/NBomber.CSharpImpl/NBomber.CSharpImpl.csproj b/performance/NBomber.CSharpImpl/NBomber.CSharpImpl.csproj index 6836c680..e0ad4b55 100644 --- a/performance/NBomber.CSharpImpl/NBomber.CSharpImpl.csproj +++ b/performance/NBomber.CSharpImpl/NBomber.CSharpImpl.csproj @@ -1,7 +1,7 @@ - net7.0 + net10.0 enable enable