44 workflow_dispatch :
55 inputs :
66 ref :
7- description : ' Build Reference '
7+ description : ' MsQuic Branch or Commit '
88 required : false
9- default : ' '
9+ default : ' main '
1010 type : string
1111 filter :
12- description : ' Test Filter'
12+ description : ' Custom Test Filter'
1313 required : false
1414 default : ' '
1515 type : string
1616 logprofile :
17- description : ' Log Profile'
17+ description : ' Logging WPR Profile'
1818 required : false
1919 default : " NULL"
2020 type : choice
3333 - Full.Light
3434 - Full.Verbose
3535 commit :
36- description : ' Commit Results'
36+ description : ' Publish Results'
3737 required : false
3838 default : false
3939 type : boolean
40+ pull_request :
41+ branches :
42+ - main
43+ paths :
44+ - .github/workflows/quic.yml
45+ - .github/workflows/generate-summary.ps1
4046 repository_dispatch :
4147 types : [run-quic]
4248 # Args: { guid, sha, ref, pr, logs, filter }
4349
4450concurrency :
45- group : quic-${{ github.event.client_payload.pr || github.event.client_payload.sha || inputs.ref || 'main' }}
51+ group : quic-${{ github.event.client_payload.pr || github.event.client_payload.sha || inputs.ref || github.event.pull_request.number || 'main' }}
4652 cancel-in-progress : true
4753
4854permissions : read-all
@@ -115,31 +121,36 @@ jobs:
115121 #
116122
117123 run-secnetperf : # This would be 1 enumeration, after CTS has setup the environment with the correct OS type and version.
118- name : Run secnetperf
124+ name : secnetperf
119125 needs : [build-unix, build-windows, build-windows-kernel]
120126 strategy :
121127 fail-fast : false
122128 matrix :
123129 vec : [
130+ # Azure Ubuntu 20.04
124131 { env: "azure", plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl", io: "epoll" },
125132 { env: "azure", plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl3", io: "epoll" },
133+ # Azure Windows Server 2022
126134 { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "iocp" },
127135 { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl", io: "iocp" },
128136 { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl3", io: "iocp" },
129137 { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "xdp" },
130- { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl", io: "xdp" },
131- { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl3", io: "xdp" },
138+ { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "rio" },
132139 { env: "azure", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "wsk" },
140+ # Azure Windows Server 2025 (preview)
133141 { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "iocp" },
134- { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "openssl", io: "iocp" },
135- { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "openssl3", io: "iocp" },
142+ { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "rio" },
143+ { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "xdp" },
144+ { env: "azure", plat: "windows", os: "windows-2025", arch: "x64", tls: "schannel", io: "wsk" },
145+ # Lab Windows Server 2022
136146 { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "iocp" },
137147 { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl", io: "iocp" },
138148 { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl3", io: "iocp" },
139149 { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "xdp" },
140- { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl", io: "xdp" },
141- { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl3", io: "xdp" },
142150 { env: "lab", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", io: "wsk" },
151+ # Lab Ubuntu Server 20.04 LTS
152+ { env: "lab", plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl", io: "epoll" },
153+ { env: "lab", plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl3", io: "epoll" },
143154 ]
144155 runs-on :
145156 - self-hosted
@@ -165,7 +176,7 @@ jobs:
165176 path : artifacts
166177 - name : Run secnetperf
167178 shell : pwsh
168- timeout-minutes : 15 # TODO: Increase as necessary
179+ timeout-minutes : 20
169180 run : ./scripts/secnetperf.ps1 `
170181 -LogProfile ${{ github.event.client_payload.logs || inputs.logprofile || 'NULL' }} `
171182 -MsQuicCommit ${{ github.event.client_payload.sha || github.event.client_payload.ref || inputs.ref || 'main' }} `
@@ -182,7 +193,7 @@ jobs:
182193 with :
183194 name : test-results-${{ matrix.vec.env }}-${{ matrix.vec.plat }}-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-${{ matrix.vec.io }}.sql
184195 path : test-results-${{ matrix.vec.env }}-${{ matrix.vec.plat }}-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-${{ matrix.vec.io }}.sql
185- - name : Upload Test Results JSON # Data to populate the various pages of the dashboard. Callers of the Netperf API should specify if we want to update this or not.
196+ - name : Upload Test Results JSON
186197 if : ${{ always() }}
187198 uses : actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3
188199 with :
@@ -230,7 +241,9 @@ jobs:
230241 with :
231242 repository : microsoft/netperf
232243 ref : sqlite
233- - uses : actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # Specify no 'name' to download all uploaded artifacts
244+ - uses : actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
245+ with :
246+ pattern : test-results-*
234247 - run : ls
235248 - run : python sql.py
236249 - name : Git commit # TODO: Squash history for this branch to keep size small
@@ -250,7 +263,9 @@ jobs:
250263 repository : microsoft/netperf
251264 ref : deploy
252265 - run : ' rm -rf *.json'
253- - uses : actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe # Specify no 'name' to download all uploaded artifacts. TODO: Refactor this "download-all" models to instead filter for specific artifacts slices.
266+ - uses : actions/download-artifact@eaceaf801fd36c7dee90939fad912460b18a1ffe
267+ with :
268+ pattern : " json-test-results-*"
254269 - run : python generate_historical_data.py
255270 - name : Git commit
256271 run :
' git config user.name "QUIC Dev[bot]" && git config user.email "[email protected] " && git pull && git add *.json && git commit -m "Update intermediary dashboard files" && git push'
0 commit comments