-
Notifications
You must be signed in to change notification settings - Fork 238
/
trend-scenarios.yml
108 lines (100 loc) · 7.85 KB
/
trend-scenarios.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
parameters:
- name: arguments
type: string
default: ''
- name: connection
type: string
default: ''
- name: condition
type: string
default: 'true'
# Scenarios
- name: scenarios
type: object
default:
# Platform
- displayName: Plaintext Platform
arguments: --scenario plaintext $(platformJobs) --property scenario=PlaintextPlatform --property protocol=http
- displayName: Json Platform
arguments: --scenario json $(platformJobs) --property scenario=JsonPlatform --property protocol=http
- displayName: Plaintext Platform Inline
arguments: --scenario plaintext $(platformJobs) --application.environmentVariables DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS=1 --property scenario=PlaintextPlatformInline --property protocol=http
- displayName: Json Platform Inline
arguments: --scenario json $(platformJobs) --application.environmentVariables DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS=1 --property scenario=JsonPlatformInline --property protocol=http
# Plaintext
- displayName: Plaintext
arguments: --scenario plaintext $(plaintextJobs) --property scenario=Plaintext --property protocol=http
- displayName: Plaintext Query String
arguments: --scenario plaintext $(plaintextJobs) --property scenario=PlaintextQueryString --property protocol=http --variable path=/plaintext?query1=lorem&query2=ipsum&query3=dolor%20est
- displayName: Plaintext Mvc
arguments: --scenario mvc $(plaintextJobs) --property scenario=PlaintextMvc --property protocol=http
- displayName: Plaintext MapAction
arguments: --scenario mapaction $(plaintextJobs) --property scenario=PlaintextMapAction --property protocol=http
- displayName: Plaintext Minimal APIs
arguments: --scenario plaintext $(minimalJobs) --property scenario=PlaintextMinimalApis --property protocol=http
- displayName: Plaintext Endpoint
arguments: --scenario endpoint $(plaintextJobs) --property scenario=PlaintextEndpoint --property protocol=http
- displayName: Plaintext (No Filters)
arguments: --scenario plainTextSansFilter $(plaintextJobs) --property scenario=PlaintextWithParametersNoFilter --property protocol=http
- displayName: Plaintext (Empty Filters)
arguments: --scenario plainTextEmptyFilter $(plaintextJobs) --property scenario=PlaintextWithParametersEmptyFilter --property protocol=http
- displayName: Plaintext (Empty Filters, No Parameters)
arguments: --scenario plainTextNoParamsEmptyFilter $(plaintextJobs) --property scenario=PlaintextNoParametersEmptyFilter --property protocol=http
- displayName: Plaintext (With Filters)
arguments: --scenario plainTextWithFilter $(plaintextJobs) --property scenario=PlaintextWithParameterstWithFilter --property protocol=http
- displayName: Plaintext Connection Close
arguments: --scenario connectionclose $(plaintextJobs) --property scenario=ConnectionClose --property protocol=http --variable connections=32 --property connections=32
- displayName: Plaintext Connection Close Https
arguments: --scenario connectionclosehttps $(plaintextJobs) --property scenario=ConnectionCloseHttps --property protocol=https --variable connections=32 --property connections=32
- displayName: Plaintext Connection Close HttpSys
arguments: --scenario connectionclose $(plaintextJobs) --property scenario=ConnectionCloseHttpSys --property protocol=http --variable connections=32 --property connections=32 --variable server=HttpSys --application.options.requiredOperatingSystem windows
- displayName: Plaintext Connection Close Https HttpSys
arguments: --scenario connectionclosehttps $(plaintextJobs) --property scenario=ConnectionCloseHttpsHttpSys --property protocol=https --variable connections=32 --property connections=32 --variable server=HttpSys --application.options.requiredOperatingSystem windows
# Json
- displayName: Json
arguments: --scenario json $(jsonJobs) --property scenario=Json --property protocol=http
- displayName: Json HttpSys
arguments: --scenario json $(jsonJobs) --property protocol=http --property scenario=JsonHttpSys --variable server=HttpSys --application.options.requiredOperatingSystem windows
- displayName: Json IIS InProc
arguments: --scenario json $(jsonJobs) --property protocol=http --property scenario=JsonIISInProc --variable server=IISInProcess --application.WebHost IISInProcess --application.options.requiredOperatingSystem windows
- displayName: Json IIS OutOfProc
arguments: --scenario json $(jsonJobs) --property protocol=http --property scenario=JsonIISOutOfProc --variable server=IISOutOfProcess --application.WebHost IISOutOfProcess --application.options.requiredOperatingSystem windows
- displayName: Json Https
arguments: --scenario https $(jsonJobs) --property scenario=JsonHttps --property protocol=https
- displayName: Json Https HttpSys
arguments: --scenario https $(jsonJobs) --property scenario=JsonHttpsHttpSys --property protocol=https --variable server=HttpSys --application.options.requiredOperatingSystem windows
- displayName: Json Https IIS InProc
arguments: --scenario https $(jsonJobs) --property protocol=https --property scenario=JsonHttpsIISInProc --variable server=IISInProcess --application.WebHost IISInProcess --application.options.requiredOperatingSystem windows
- displayName: Json Https IIS OutOfProc
arguments: --scenario https $(jsonJobs) --property protocol=https --property scenario=JsonHttpsIISOutOfProc --variable server=IISOutOfProcess --application.WebHost IISOutOfProcess --application.options.requiredOperatingSystem windows
- displayName: Json Crossgen2
arguments: --scenario json $(jsonJobs) --property scenario=JsonCrossgen2 --property protocol=http --application.buildArguments \"/p:PublishReadyToRun=true /p:PublishReadyToRunUseCrossgen2=true \" --application.options.requiredOperatingSystem windows
- displayName: Json Mvc
arguments: --scenario mvc $(jsonJobs) --property scenario=JsonMvc --property protocol=http
- displayName: Json MapAction
arguments: --scenario mapaction $(jsonJobs) --property scenario=JsonMapAction --property protocol=http
- displayName: Json Minimal APIs
arguments: --scenario json $(minimalJobs) --property scenario=JsonMinimalApis --property protocol=http
- displayName: Json 5M
arguments: --scenario json_middleware --variable singleStringJsonSize=5000000 --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/json.benchmarks.yml --property scenario=Json5M
- displayName: Json 400k
arguments: --scenario json_middleware --variable singleStringJsonSize=400000 --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/json.benchmarks.yml --property scenario=Json400k
- displayName: Json 10k
arguments: --scenario json_middleware --variable singleStringJsonSize=10000 --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/json.benchmarks.yml --property scenario=Json10k
steps:
- ${{ each s in parameters.scenarios }}:
- task: PublishToAzureServiceBus@1
displayName: "${{ s.displayName }}"
condition: succeededOrFailed()
timeoutInMinutes: 10
inputs:
connectedServiceName: ${{ parameters.connection }}
waitForCompletion: true
useDataContractSerializer: "false"
messageBody: |
{
"name": "crank",
"condition": "(${{ parameters.condition }})",
"retries": 1,
"args": [ "${{ s.arguments }} $(azureProfile) --config https://raw.githubusercontent.com/aspnet/Benchmarks/main/scenarios/steadystate.profile.yml --application.framework net9.0 --application.collectDependencies true ${{ parameters.arguments }} --application.options.collectCounters true --no-metadata --no-measurements --load.options.reuseBuild true --session $(session) --description \"${{ s.displayName }} $(System.JobDisplayName)\" --property buildId=\"$(buildId)\" --property buildNumber=\"$(buildNumber)\" --command-line-property --table TrendBenchmarks --sql SQL_CONNECTION_STRING --chart" ]
}