msquic/.azure/azure-pipelines.perf.yml

138 строки
3.1 KiB
YAML

#
# Continuous Integration (CI)
# This pipeline builds and runs MsQuic performance tests.
#
trigger: none
pr: none
name: 0.$(Date:yyyy).$(Date:MM).$(DayOfMonth).$(Rev:rr).0
parameters:
- name: mode
type: string
displayName: Mode
default: Normal
values:
- Normal
- PGO
- Record
- RecordQUICTrace
- name: arch
type: string
displayName: Server Architecture
default: x64
values:
- x64
- x86
- name: kernelmode
type: boolean
displayName: Server Kernel Mode
default: false
- name: tls
type: string
displayName: Server TLS
default: schannel
values:
- schannel
- openssl
- name: testToRun
type: string
displayName: Run Specific Test
default: all
values:
- all
- ThroughputUp
- ThroughputDown
- RPS
- HPS
- name: testTypes
type: string
displayName: Test Types
default: Remote,Loopback
values:
- Remote,Loopback
- Remote
- Loopback
- name: protocol
type: string
displayName: Protocol
default: QUIC
values:
- QUIC
- TCPTLS
stages:
#
# Builds
#
- stage: build_windows
displayName: Build Windows
dependsOn: []
variables:
runCodesignValidationInjection: false
jobs:
- ${{ if and(eq(parameters.kernelmode, false), ne(parameters.tls, 'schannel')) }}:
- template: ./templates/build-config-user.yml
parameters:
image: windows-latest
platform: windows
arch: ${{ parameters.arch }}
tls: ${{ parameters.tls }}
config: Release
${{ if eq(parameters.mode, 'PGO') }}:
extraBuildArgs: -DisableTest -DisableTools -PGO
${{ if ne(parameters.mode, 'PGO') }}:
extraBuildArgs: -DisableTest -DisableTools
- ${{ if eq(parameters.kernelmode, true) }}:
- template: ./templates/build-config-winkernel.yml
parameters:
arch: ${{ parameters.arch }}
config: Release
- template: ./templates/build-config-user.yml
parameters:
image: windows-latest
platform: windows
arch: ${{ parameters.arch }}
tls: schannel
config: Release
${{ if eq(parameters.mode, 'PGO') }}:
extraBuildArgs: -DisableTest -DisableTools -PGO
${{ if ne(parameters.mode, 'PGO') }}:
extraBuildArgs: -DisableTest -DisableTools
#
# Performance Tests
#
- stage: performance
displayName: Performance Testing (${{ parameters.mode }})
dependsOn:
- build_windows
jobs:
- template: ./templates/run-performance.yml
parameters:
pool: MsQuic-Win-Perf
platform: windows
localTls: schannel
remoteTls: ${{ parameters.tls }}
arch: ${{ parameters.arch }}
protocol: ${{ parameters.protocol }}
failOnRegression: 0
${{ if ne(parameters.testToRun, 'all') }}:
testToRun: ${{ parameters.testToRun }}
${{ if eq(parameters.kernelmode, true) }}:
kernelMode: -Kernel
extraName: 'Kernel'
testTypes: 'Remote'
${{ if eq(parameters.kernelmode, false) }}:
testTypes: ${{ parameters.testTypes }}
${{ if eq(parameters.mode, 'PGO') }}:
extraArgs: -PGO
${{ if eq(parameters.mode, 'Record') }}:
extraArgs: -RecordStack
${{ if eq(parameters.mode, 'RecordQUICTrace') }}:
extraArgs: -RecordQUIC