msquic/.azure/azure-pipelines.qns.yml

83 строки
2.7 KiB
YAML

#
# This pipeline executes the interop runner for all implementations, or only the
# specified client and/or server.
#
trigger:
batch: true
branches:
include:
- main
paths:
exclude:
- src/plugins/*
- docs/*
- README.md
pr: none
name: 0.$(Date:yyyy).$(Date:MM).$(DayOfMonth).$(Rev:rr).0
parameters:
- name: custom_build
type: boolean
displayName: Build docker image
default: false
- name: measurements
type: boolean
displayName: Run Measurements
default: false
- name: timeout
type: number
displayName: Timeout (min)
default: 15
- name: client
type: string
displayName: Client
default: 'all'
- name: server
type: string
displayName: Server
default: 'all'
jobs:
- ${{ if or(parameters.custom_build, eq(variables['Build.Reason'], 'BatchedCI')) }}:
- job: publish_docker
displayName: Build and Publish
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: self
submodules: recursive
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: 'public/msquic/qns'
dockerfile: '$(Build.SourcesDirectory)/Dockerfile'
containerRegistry: '9196310f-afae-4a53-8e35-b9e753eeb0f3'
${{ if eq(variables['Build.Reason'], 'BatchedCI') }}:
tags: |
latest
v1.3.0.$(Build.BuildId)
${{ if ne(variables['Build.Reason'], 'BatchedCI') }}:
tags: custom-$(Build.BuildId)
- template: .\templates\run-qns.yml
parameters:
${{ if or(parameters.custom_build, eq(variables['Build.Reason'], 'BatchedCI')) }}:
dependsOn: publish_docker
timeout: ${{ parameters.timeout }}
measurements: ${{ parameters.measurements }}
${{ if and(parameters.custom_build, ne(variables['Build.Reason'], 'BatchedCI')) }}:
build: custom-$(Build.BuildId)
${{ if eq(variables['Build.Reason'], 'BatchedCI') }}:
clients: [ 'quic-go', 'quant', 'msquic' ]
servers: [ 'quic-go', 'quant', 'msquic' ]
${{ if and(eq(parameters.client, 'all'), ne(variables['Build.Reason'], 'BatchedCI')) }}:
clients: [ 'quic-go', 'quicly', 'ngtcp2', 'quant', 'mvfst', 'quiche', 'kwik', 'picoquic', 'aioquic', 'neqo', 'msquic' ]
${{ if and(ne(parameters.client, 'all'), ne(variables['Build.Reason'], 'BatchedCI')) }}:
clients: [ '${{ parameters.client }}' ]
${{ if and(eq(parameters.server, 'all'), ne(variables['Build.Reason'], 'BatchedCI')) }}:
servers: [ 'quic-go', 'quicly', 'ngtcp2', 'quant', 'mvfst', 'quiche', 'picoquic', 'aioquic', 'neqo', 'nginx', 'msquic' ]
${{ if and(ne(parameters.server, 'all'), ne(variables['Build.Reason'], 'BatchedCI')) }}:
servers: [ '${{ parameters.server }}' ]