build/scripts/Benchmarking.fs (22 lines of code) (raw):

// Licensed to Elasticsearch B.V under one or more agreements. // Elasticsearch B.V licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. namespace Scripts open System.IO open Commandline module Benchmarker = let private testsProjectDirectory = Path.GetFullPath(Paths.TestsSource("Tests.Benchmarking")) let Run args = let url = match args.CommandArguments with | Benchmark b -> Some b.Endpoint | _ -> None let username = match args.CommandArguments with | Benchmark b -> b.Username | _ -> None let password = match args.CommandArguments with | Benchmark b -> b.Password | _ -> None let runInteractive = not args.NonInteractive let credentials = (username, password) let runCommandPrefix = "run -f net8.0 -c Release" let runCommand = match (runInteractive, url, credentials) with | (false, Some url, (Some username, Some password)) -> sprintf "%s -- --all \"%s\" \"%s\" \"%s\"" runCommandPrefix url username password | (false, Some url, _) -> sprintf "%s -- --all \"%s\"" runCommandPrefix url | (false, _, _) -> sprintf "%s -- --all" runCommandPrefix | (true, _, _) -> runCommandPrefix Tooling.DotNet.ExecIn testsProjectDirectory [runCommand] |> ignore