Skip to content

Conversation

@lucaspimentel
Copy link
Member

@lucaspimentel lucaspimentel commented Nov 25, 2025

Summary of changes

Fixed the Build-AzureFunctionsNuget.ps1 script to work on Linux and macOS in addition to Windows.

Reason for change

The script only worked on only Windows.

Implementation details

  • Added OS detection logic to select the appropriate Nuke build script (build.ps1 for Windows, build.sh for Linux/macOS)
  • Changed all hardcoded backslash paths to forward slashes which work in all platforms
  • Updated paths in verbose output messages for consistency

Test coverage

Tested manually on Windows and Linux. This script is only used to build local dev versions of the nuget package, not production code.

Other details

n/a

@lucaspimentel lucaspimentel force-pushed the lpimentel/azure-functions/script-support-linux-macos branch from 11f06a5 to 082632a Compare November 25, 2025 18:48
@lucaspimentel lucaspimentel changed the title Fix Azure Functions NuGet script for Linux and macOS [Azure Functions] Fix Azure Functions NuGet script for Linux and macOS Nov 25, 2025
@pr-commenter

This comment was marked as off-topic.

@lucaspimentel lucaspimentel marked this pull request as ready for review November 25, 2025 19:14
@lucaspimentel lucaspimentel requested a review from a team as a code owner November 25, 2025 19:14
@lucaspimentel lucaspimentel enabled auto-merge (squash) November 25, 2025 19:36
@pr-commenter

This comment was marked as off-topic.

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Nov 25, 2025

⚠️ Tests

⚠️ Warnings

🧪 1 Test failed

RunTest from Datadog.Trace.Security.IntegrationTests.Rcm.AspNetCore5AsmDataSecurityEnabledBlockingRequestIp (Datadog)

-------- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it. [::ffff:127.0.0.1]:52850localhost:52850)ion could be made because the target machine actively refused it. [::ffff:127.0.0.1]:52850 (localhost:52850)

ℹ️ Info

❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 082632a | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@dd-trace-dotnet-ci-bot
Copy link

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7864) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration76.58 ± (76.88 - 77.83) ms77.11 ± (77.91 - 79.04) ms+0.7%✅⬆️
.NET Framework 4.8 - Bailout
duration79.89 ± (79.75 - 80.39) ms81.74 ± (81.79 - 82.88) ms+2.3%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1069.02 ± (1074.30 - 1086.47) ms1094.21 ± (1097.16 - 1110.84) ms+2.4%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms23.11 ± (23.02 - 23.19) ms23.12 ± (23.04 - 23.21) ms+0.1%✅⬆️
process.time_to_main_ms88.63 ± (88.10 - 89.16) ms89.75 ± (89.22 - 90.27) ms+1.3%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.92 ± (10.92 - 10.92) MB10.94 ± (10.93 - 10.94) MB+0.1%✅⬆️
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms23.13 ± (23.05 - 23.20) ms23.07 ± (23.00 - 23.14) ms-0.2%
process.time_to_main_ms90.91 ± (90.48 - 91.35) ms91.36 ± (90.88 - 91.84) ms+0.5%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.96 ± (10.96 - 10.97) MB10.97 ± (10.97 - 10.98) MB+0.1%✅⬆️
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms224.13 ± (222.61 - 225.64) ms226.57 ± (224.36 - 228.77) ms+1.1%✅⬆️
process.time_to_main_ms508.07 ± (506.50 - 509.65) ms514.28 ± (512.18 - 516.38) ms+1.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.75 ± (47.73 - 47.77) MB47.72 ± (47.69 - 47.75) MB-0.1%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.3%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms22.21 ± (22.11 - 22.30) ms22.30 ± (22.21 - 22.39) ms+0.4%✅⬆️
process.time_to_main_ms79.15 ± (78.68 - 79.62) ms79.22 ± (78.76 - 79.67) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.60 ± (10.60 - 10.60) MB10.65 ± (10.65 - 10.66) MB+0.5%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.99 ± (21.91 - 22.07) ms21.98 ± (21.90 - 22.07) ms-0.0%
process.time_to_main_ms79.90 ± (79.44 - 80.36) ms79.43 ± (79.02 - 79.83) ms-0.6%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.64 ± (10.64 - 10.65) MB10.69 ± (10.69 - 10.69) MB+0.4%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms215.28 ± (213.75 - 216.81) ms216.50 ± (214.84 - 218.15) ms+0.6%✅⬆️
process.time_to_main_ms479.77 ± (478.42 - 481.12) ms483.22 ± (481.62 - 484.82) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.00 ± (47.97 - 48.02) MB48.11 ± (48.09 - 48.14) MB+0.2%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)-0.0%
.NET 8 - Baseline
process.internal_duration_ms20.18 ± (20.10 - 20.27) ms20.47 ± (20.37 - 20.58) ms+1.4%✅⬆️
process.time_to_main_ms77.50 ± (77.08 - 77.92) ms78.78 ± (78.23 - 79.33) ms+1.7%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.67 ± (7.66 - 7.67) MB7.70 ± (7.69 - 7.70) MB+0.4%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.18 ± (20.10 - 20.26) ms20.01 ± (19.93 - 20.09) ms-0.8%
process.time_to_main_ms79.10 ± (78.64 - 79.56) ms77.93 ± (77.45 - 78.40) ms-1.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.72 ± (7.71 - 7.73) MB7.75 ± (7.75 - 7.76) MB+0.4%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms195.31 ± (194.33 - 196.29) ms197.15 ± (196.07 - 198.24) ms+0.9%✅⬆️
process.time_to_main_ms469.22 ± (467.79 - 470.65) ms468.88 ± (467.37 - 470.40) ms-0.1%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.47 ± (36.43 - 36.51) MB36.50 ± (36.46 - 36.54) MB+0.1%✅⬆️
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)+0.0%✅⬆️

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration194.66 ± (194.42 - 195.26) ms194.20 ± (194.35 - 195.21) ms-0.2%
.NET Framework 4.8 - Bailout
duration199.71 ± (199.41 - 200.23) ms200.80 ± (200.79 - 201.81) ms+0.5%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1116.86 ± (1121.99 - 1131.74) ms1118.48 ± (1122.44 - 1133.26) ms+0.1%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms189.21 ± (188.79 - 189.63) ms190.66 ± (190.25 - 191.08) ms+0.8%✅⬆️
process.time_to_main_ms81.67 ± (81.41 - 81.92) ms81.91 ± (81.68 - 82.14) ms+0.3%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.12 ± (16.09 - 16.16) MB16.07 ± (16.04 - 16.10) MB-0.4%
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (20 - 20)+0.2%✅⬆️
.NET Core 3.1 - Bailout
process.internal_duration_ms189.91 ± (189.49 - 190.33) ms188.81 ± (188.46 - 189.15) ms-0.6%
process.time_to_main_ms83.39 ± (83.18 - 83.60) ms82.97 ± (82.80 - 83.13) ms-0.5%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.15 ± (16.13 - 16.17) MB16.14 ± (16.12 - 16.17) MB-0.1%
runtime.dotnet.threads.count21 ± (21 - 21)21 ± (20 - 21)-0.3%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms399.61 ± (397.31 - 401.92) ms407.79 ± (405.00 - 410.59) ms+2.0%✅⬆️
process.time_to_main_ms478.43 ± (477.43 - 479.44) ms482.05 ± (480.94 - 483.17) ms+0.8%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.71 ± (58.60 - 58.83) MB58.78 ± (58.67 - 58.88) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 30)+0.1%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms192.99 ± (192.67 - 193.30) ms195.33 ± (194.87 - 195.78) ms+1.2%✅⬆️
process.time_to_main_ms70.44 ± (70.28 - 70.61) ms70.95 ± (70.78 - 71.12) ms+0.7%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.36 ± (16.29 - 16.44) MB16.38 ± (16.33 - 16.42) MB+0.1%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+1.1%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms191.87 ± (191.63 - 192.12) ms195.93 ± (195.43 - 196.43) ms+2.1%✅⬆️
process.time_to_main_ms71.55 ± (71.44 - 71.66) ms72.57 ± (72.39 - 72.75) ms+1.4%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.45 ± (16.37 - 16.53) MB16.41 ± (16.39 - 16.43) MB-0.3%
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (20 - 20)+2.0%✅⬆️
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms418.29 ± (415.63 - 420.96) ms420.81 ± (417.85 - 423.78) ms+0.6%✅⬆️
process.time_to_main_ms445.57 ± (444.83 - 446.30) ms448.09 ± (447.18 - 449.01) ms+0.6%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed59.16 ± (59.04 - 59.27) MB59.00 ± (58.88 - 59.12) MB-0.3%
runtime.dotnet.threads.count30 ± (29 - 30)30 ± (29 - 30)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms191.55 ± (191.12 - 191.98) ms192.38 ± (191.92 - 192.83) ms+0.4%✅⬆️
process.time_to_main_ms70.41 ± (70.24 - 70.59) ms70.40 ± (70.20 - 70.61) ms-0.0%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.80 ± (11.78 - 11.83) MB11.68 ± (11.65 - 11.70) MB-1.1%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)+0.2%✅⬆️
.NET 8 - Bailout
process.internal_duration_ms191.44 ± (191.10 - 191.78) ms192.01 ± (191.56 - 192.45) ms+0.3%✅⬆️
process.time_to_main_ms71.39 ± (71.24 - 71.53) ms71.42 ± (71.24 - 71.59) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.87 ± (11.84 - 11.90) MB11.71 ± (11.69 - 11.73) MB-1.3%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.4%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms367.00 ± (365.53 - 368.48) ms366.50 ± (365.01 - 367.99) ms-0.1%
process.time_to_main_ms433.07 ± (432.47 - 433.66) ms432.73 ± (432.15 - 433.31) ms-0.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.85 ± (47.83 - 47.88) MB47.94 ± (47.91 - 47.97) MB+0.2%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.1%✅⬆️
Comparison explanation

Execution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (78ms)  : 70, 87
    master - mean (77ms)  : 71, 84

    section Bailout
    This PR (7864) - mean (82ms)  : 74, 91
    master - mean (80ms)  : 75, 85

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (1,104ms)  : 1015, 1193
    master - mean (1,080ms)  : 989, 1172

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (121ms)  : 109, 132
    master - mean (119ms)  : 109, 129

    section Bailout
    This PR (7864) - mean (122ms)  : 114, 130
    master - mean (122ms)  : 113, 131

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (785ms)  : 731, 840
    master - mean (773ms)  : 727, 820

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (109ms)  : 101, 117
    master - mean (109ms)  : 98, 119

    section Bailout
    This PR (7864) - mean (109ms)  : 100, 118
    master - mean (109ms)  : 100, 118

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (742ms)  : 694, 790
    master - mean (727ms)  : 686, 769

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (109ms)  : 98, 119
    master - mean (106ms)  : 99, 114

    section Bailout
    This PR (7864) - mean (107ms)  : 97, 116
    master - mean (108ms)  : 98, 118

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (711ms)  : 676, 745
    master - mean (702ms)  : 666, 739

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (195ms)  : 189, 200
    master - mean (195ms)  : 191, 199

    section Bailout
    This PR (7864) - mean (201ms)  : 195, 208
    master - mean (200ms)  : 196, 204

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (1,128ms)  : 1051, 1204
    master - mean (1,127ms)  : 1056, 1197

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (281ms)  : 275, 287
    master - mean (279ms)  : 273, 286

    section Bailout
    This PR (7864) - mean (280ms)  : 275, 286
    master - mean (282ms)  : 272, 292

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (934ms)  : 887, 980
    master - mean (922ms)  : 875, 968

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (275ms)  : 267, 283
    master - mean (272ms)  : 266, 278

    section Bailout
    This PR (7864) - mean (277ms)  : 266, 288
    master - mean (272ms)  : 269, 274

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (904ms)  : 855, 953
    master - mean (902ms)  : 854, 950

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7864) - mean (273ms)  : 265, 280
    master - mean (272ms)  : 265, 278

    section Bailout
    This PR (7864) - mean (273ms)  : 266, 280
    master - mean (273ms)  : 267, 279

    section CallTarget+Inlining+NGEN
    This PR (7864) - mean (831ms)  : 803, 858
    master - mean (831ms)  : 806, 856

Loading

@lucaspimentel lucaspimentel merged commit e31019e into master Nov 25, 2025
70 of 74 checks passed
@lucaspimentel lucaspimentel deleted the lpimentel/azure-functions/script-support-linux-macos branch November 25, 2025 22:04
@github-actions github-actions bot added this to the vNext-v3 milestone Nov 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants