2020-06-23 21:35:59 +03:00
|
|
|
#
|
|
|
|
# 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
|
2020-07-29 00:05:50 +03:00
|
|
|
- RecordQUICTrace
|
2020-10-13 07:20:57 +03:00
|
|
|
- name: arch
|
|
|
|
type: string
|
2020-10-15 03:52:43 +03:00
|
|
|
displayName: Server Architecture
|
2020-10-13 07:20:57 +03:00
|
|
|
default: x64
|
|
|
|
values:
|
|
|
|
- x64
|
|
|
|
- x86
|
2020-10-15 03:52:43 +03:00
|
|
|
- name: kernelmode
|
|
|
|
type: boolean
|
|
|
|
displayName: Server Kernel Mode
|
|
|
|
default: false
|
2020-10-13 07:20:57 +03:00
|
|
|
- name: tls
|
|
|
|
type: string
|
2020-10-15 03:52:43 +03:00
|
|
|
displayName: Server TLS
|
2020-10-13 07:20:57 +03:00
|
|
|
default: schannel
|
|
|
|
values:
|
|
|
|
- schannel
|
|
|
|
- openssl
|
2020-10-15 03:52:43 +03:00
|
|
|
- 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
|
2021-01-22 22:56:31 +03:00
|
|
|
- name: protocol
|
|
|
|
type: string
|
|
|
|
displayName: Protocol
|
|
|
|
default: QUIC
|
|
|
|
values:
|
|
|
|
- QUIC
|
|
|
|
- TCPTLS
|
2020-10-13 07:20:57 +03:00
|
|
|
|
|
|
|
stages:
|
2020-06-23 21:35:59 +03:00
|
|
|
|
|
|
|
#
|
|
|
|
# Builds
|
|
|
|
#
|
|
|
|
|
|
|
|
- stage: build_windows
|
|
|
|
displayName: Build Windows
|
|
|
|
dependsOn: []
|
|
|
|
variables:
|
|
|
|
runCodesignValidationInjection: false
|
|
|
|
jobs:
|
2020-10-15 03:52:43 +03:00
|
|
|
- ${{ if and(eq(parameters.kernelmode, false), ne(parameters.tls, 'schannel')) }}:
|
2020-08-21 23:46:39 +03:00
|
|
|
- template: ./templates/build-config-user.yml
|
|
|
|
parameters:
|
|
|
|
image: windows-latest
|
|
|
|
platform: windows
|
2020-10-13 07:20:57 +03:00
|
|
|
arch: ${{ parameters.arch }}
|
|
|
|
tls: ${{ parameters.tls }}
|
2020-08-21 23:46:39 +03:00
|
|
|
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:
|
2020-10-13 07:20:57 +03:00
|
|
|
arch: ${{ parameters.arch }}
|
2020-08-21 23:46:39 +03:00
|
|
|
config: Release
|
2020-06-23 21:35:59 +03:00
|
|
|
- template: ./templates/build-config-user.yml
|
|
|
|
parameters:
|
|
|
|
image: windows-latest
|
|
|
|
platform: windows
|
2020-10-13 07:20:57 +03:00
|
|
|
arch: ${{ parameters.arch }}
|
2020-06-23 21:35:59 +03:00
|
|
|
tls: schannel
|
|
|
|
config: Release
|
|
|
|
${{ if eq(parameters.mode, 'PGO') }}:
|
2020-07-30 02:31:27 +03:00
|
|
|
extraBuildArgs: -DisableTest -DisableTools -PGO
|
2020-06-23 21:35:59 +03:00
|
|
|
${{ if ne(parameters.mode, 'PGO') }}:
|
2020-07-30 02:31:27 +03:00
|
|
|
extraBuildArgs: -DisableTest -DisableTools
|
2020-06-23 21:35:59 +03:00
|
|
|
|
|
|
|
#
|
|
|
|
# Performance Tests
|
|
|
|
#
|
|
|
|
|
|
|
|
- stage: performance
|
|
|
|
displayName: Performance Testing (${{ parameters.mode }})
|
|
|
|
dependsOn:
|
|
|
|
- build_windows
|
|
|
|
jobs:
|
2020-07-02 21:50:34 +03:00
|
|
|
- template: ./templates/run-performance.yml
|
2020-06-23 21:35:59 +03:00
|
|
|
parameters:
|
2020-07-02 21:50:34 +03:00
|
|
|
pool: MsQuic-Win-Perf
|
|
|
|
platform: windows
|
2020-07-09 20:30:02 +03:00
|
|
|
localTls: schannel
|
2020-10-13 07:20:57 +03:00
|
|
|
remoteTls: ${{ parameters.tls }}
|
|
|
|
arch: ${{ parameters.arch }}
|
2021-01-22 22:56:31 +03:00
|
|
|
protocol: ${{ parameters.protocol }}
|
2020-11-10 22:05:05 +03:00
|
|
|
failOnRegression: 0
|
2020-10-15 03:52:43 +03:00
|
|
|
${{ if ne(parameters.testToRun, 'all') }}:
|
|
|
|
testToRun: ${{ parameters.testToRun }}
|
2020-08-26 02:04:57 +03:00
|
|
|
${{ if eq(parameters.kernelmode, true) }}:
|
|
|
|
kernelMode: -Kernel
|
|
|
|
extraName: 'Kernel'
|
|
|
|
testTypes: 'Remote'
|
2020-08-27 20:42:14 +03:00
|
|
|
${{ if eq(parameters.kernelmode, false) }}:
|
|
|
|
testTypes: ${{ parameters.testTypes }}
|
2020-07-29 00:05:50 +03:00
|
|
|
${{ if eq(parameters.mode, 'PGO') }}:
|
|
|
|
extraArgs: -PGO
|
|
|
|
${{ if eq(parameters.mode, 'Record') }}:
|
2020-07-29 04:49:35 +03:00
|
|
|
extraArgs: -RecordStack
|
2020-07-29 00:05:50 +03:00
|
|
|
${{ if eq(parameters.mode, 'RecordQUICTrace') }}:
|
|
|
|
extraArgs: -RecordQUIC
|