Azure Pipeline YAML Refactor & Improvements (#572)

This commit is contained in:
Nick Banks 2020-07-02 11:50:34 -07:00 коммит произвёл GitHub
Родитель af64e17763
Коммит 2d68ae61d7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
10 изменённых файлов: 85 добавлений и 130 удалений

Просмотреть файл

@ -125,13 +125,13 @@ stages:
arch: x64
tls: stub
extraBuildArgs: -SanitizeAddress
- template: ./templates/build-config-user-container.yml
- template: ./templates/build-config-user.yml
parameters:
image: ubuntu-latest
container: raspbian
platform: linux
arch: arm
tls: openssl
container: raspbian
extraBuildArgs: -DisableLogs -ToolchainFile cmake/toolchains/arm-pi-gnueabihf.toolchain.cmake
#
@ -146,10 +146,10 @@ stages:
jobs:
- template: ./templates/run-bvt.yml
parameters:
image: windows-latest
pool: MsQuic-Win-Latest
platform: windows
tls: schannel
extraArgs: -Filter "ParameterValidation.*:-*Events"
logProfile: Full.Light
- template: ./templates/run-bvt.yml
parameters:
image: windows-latest
@ -178,6 +178,11 @@ stages:
- build_windows
- build_linux
jobs:
- template: ./templates/run-spinquic.yml
parameters:
pool: MsQuic-Win-Latest
platform: windows
tls: schannel
- template: ./templates/run-spinquic.yml
parameters:
image: windows-latest
@ -204,14 +209,20 @@ stages:
- build_windows
- build_linux
jobs:
- template: ./templates/run-performance-int.yml
- template: ./templates/run-performance.yml
parameters:
pool: MsQuic-Win-Perf
platform: windows
tls: stub
- template: ./templates/run-performance-int.yml
- template: ./templates/run-performance.yml
parameters:
pool: MsQuic-Win-Perf
platform: windows
tls: schannel
- template: ./templates/run-performance-int.yml
- template: ./templates/run-performance.yml
parameters:
pool: MsQuic-Win-Perf
platform: windows
tls: mitls
- template: ./templates/run-performance.yml
parameters:
@ -235,6 +246,11 @@ stages:
- build_windows
- build_linux
jobs:
- template: ./templates/run-quicinterop.yml
parameters:
pool: MsQuic-Win-Latest
platform: windows
tls: schannel
- template: ./templates/run-quicinterop.yml
parameters:
image: windows-latest

Просмотреть файл

@ -63,15 +63,19 @@ stages:
dependsOn:
- build_windows
jobs:
- template: ./templates/run-performance-int.yml
- template: ./templates/run-performance.yml
parameters:
pool: MsQuic-Win-Perf
platform: windows
tls: schannel
${{ if eq(parameters.mode, 'PGO') }}:
extraArgs: -PGO
${{ if eq(parameters.mode, 'Record') }}:
extraArgs: -Record
- template: ./templates/run-performance-int.yml
- template: ./templates/run-performance.yml
parameters:
pool: MsQuic-Win-Perf
platform: windows
tls: schannel
arch: x86
${{ if eq(parameters.mode, 'PGO') }}:

Просмотреть файл

@ -1,49 +0,0 @@
# This template contains steps to build MsQuic for a single configuration.
parameters:
image: ''
platform: ''
arch: ''
tls: ''
container: ''
extraBuildArgs: ''
jobs:
- job: build_${{ parameters.platform }}_${{ parameters.arch }}_${{ parameters.tls }}
displayName: ${{ parameters.arch }} ${{ parameters.tls }}
pool:
vmImage: ${{ parameters.image }}
container: ${{ parameters.container }}
steps:
- checkout: self
submodules: recursive
- task: ShellScript@2
displayName: Install Powershell
inputs:
scriptPath: scripts/install-powershell.sh
- task: PowerShell@2
displayName: Prepare Build Machine
inputs:
pwsh: true
filePath: scripts/prepare-machine.ps1
arguments: -Configuration Build
- task: PowerShell@2
displayName: Build Source Code (Debug)
inputs:
pwsh: true
filePath: scripts/build.ps1
arguments: -Arch ${{ parameters.arch }} -Tls ${{ parameters.tls }} -Platform ${{ parameters.platform }} ${{ parameters.extraBuildArgs }}
- task: PowerShell@2
displayName: Build Source Code (Release)
inputs:
pwsh: true
filePath: scripts/build.ps1
arguments: -Config Release -Arch ${{ parameters.arch }} -Tls ${{ parameters.tls }} -Platform ${{ parameters.platform }} ${{ parameters.extraBuildArgs }}
- template: ./upload-artifacts.yml

Просмотреть файл

@ -2,6 +2,7 @@
parameters:
image: ''
container: ''
platform: ''
arch: ''
tls: ''
@ -13,6 +14,8 @@ jobs:
displayName: ${{ parameters.arch }} ${{ parameters.tls }}
pool:
vmImage: ${{ parameters.image }}
${{ if ne(parameters.container, '') }}:
container: ${{ parameters.container }}
steps:
- checkout: self
submodules: recursive

Просмотреть файл

@ -1,6 +1,7 @@
# This template contains steps to run the BVTs for a single configuration.
parameters:
pool: ''
image: ''
platform: ''
config: 'Debug'
@ -12,13 +13,21 @@ parameters:
jobs:
- job: bvt_${{ parameters.platform }}_${{ parameters.arch }}_${{ parameters.tls }}
displayName: ${{ parameters.platform }} ${{ parameters.arch }} ${{ parameters.tls }}
pool:
vmImage: ${{ parameters.image }}
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
vmImage: ${{ parameters.image }}
variables:
runCodesignValidationInjection: false
steps:
- checkout: self
persistCredentials: true
- ${{ if ne(parameters.pool, '') }}:
- task: DeleteFiles@1
displayName: Clear Old Artifacts
inputs:
contents: '**/artifacts/*'
- template: ./download-artifacts.yml
parameters:

Просмотреть файл

@ -1,59 +0,0 @@
# This template contains steps to run performance tests for a single configuration.
parameters:
config: 'Release'
arch: 'x64'
tls: ''
extraArgs: '-Publish'
jobs:
- job: performance_windows_${{ parameters.arch }}_${{ parameters.tls }}
displayName: windows ${{ parameters.arch }} ${{ parameters.tls }}
pool: MsQuic-Win-Perf
variables:
- name: runCodesignValidationInjection
value: false
- name: skipComponentGovernanceDetection
value: true
steps:
- checkout: self
- task: DeleteFiles@1
displayName: Clear Old Artifacts
inputs:
contents: artifacts
- template: ./download-artifacts.yml
parameters:
platform: windows
arch: ${{ parameters.arch }}
tls: ${{ parameters.tls }}
- task: PowerShell@2
displayName: Prepare Test Machine
inputs:
pwsh: true
filePath: scripts/prepare-machine.ps1
arguments: -Configuration Test
- task: PowerShell@2
displayName: Run Performance Test
timeoutInMinutes: 12
continueOnError: true
inputs:
pwsh: true
filePath: scripts/performance.ps1
arguments: -Config ${{ parameters.config }} -Arch ${{ parameters.arch }} -Tls ${{ parameters.tls }} ${{ parameters.extraArgs }}
- task: CopyFiles@2
displayName: Move Performance Results
inputs:
sourceFolder: artifacts/PerfDataResults
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
displayName: Upload Performance Results
inputs:
artifactName: performance
pathToPublish: $(Build.ArtifactStagingDirectory)
parallel: true

Просмотреть файл

@ -1,6 +1,7 @@
# This template contains steps to run performance tests for a single configuration.
parameters:
pool: ''
image: ''
platform: ''
config: 'Release'
@ -11,8 +12,11 @@ parameters:
jobs:
- job: performance_${{ parameters.platform }}_${{ parameters.arch }}_${{ parameters.tls }}
displayName: ${{ parameters.platform }} ${{ parameters.arch }} ${{ parameters.tls }}
pool:
vmImage: ${{ parameters.image }}
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
vmImage: ${{ parameters.image }}
variables:
- name: runCodesignValidationInjection
value: false
@ -21,6 +25,12 @@ jobs:
steps:
- checkout: self
- ${{ if ne(parameters.pool, '') }}:
- task: DeleteFiles@1
displayName: Clear Old Artifacts
inputs:
contents: '**/artifacts/*'
- template: ./download-artifacts.yml
parameters:
platform: ${{ parameters.platform }}

Просмотреть файл

@ -1,6 +1,7 @@
# This template contains steps to run quicinterop for a single configuration.
parameters:
pool: ''
image: ''
platform: ''
config: 'Release'
@ -10,11 +11,22 @@ parameters:
jobs:
- job: interop_${{ parameters.platform }}_${{ parameters.arch }}_${{ parameters.tls }}
displayName: ${{ parameters.platform }} ${{ parameters.arch }} ${{ parameters.tls }}
pool:
vmImage: ${{ parameters.image }}
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
vmImage: ${{ parameters.image }}
variables:
runCodesignValidationInjection: false
steps:
- checkout: self
- ${{ if ne(parameters.pool, '') }}:
- task: DeleteFiles@1
displayName: Clear Old Artifacts
inputs:
contents: '**/artifacts/*'
- template: ./download-artifacts.yml
parameters:
platform: ${{ parameters.platform }}

Просмотреть файл

@ -1,6 +1,7 @@
# This template contains steps to run spinquic for a single configuration.
parameters:
pool: ''
image: ''
platform: ''
config: 'Debug'
@ -10,11 +11,22 @@ parameters:
jobs:
- job: spin_${{ parameters.platform }}_${{ parameters.arch }}_${{ parameters.tls }}
displayName: ${{ parameters.platform }} ${{ parameters.arch }} ${{ parameters.tls }}
pool:
vmImage: ${{ parameters.image }}
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
vmImage: ${{ parameters.image }}
variables:
runCodesignValidationInjection: false
steps:
- checkout: self
- ${{ if ne(parameters.pool, '') }}:
- task: DeleteFiles@1
displayName: Clear Old Artifacts
inputs:
contents: '**/artifacts/*'
- template: ./download-artifacts.yml
parameters:
platform: ${{ parameters.platform }}

Просмотреть файл

@ -32,10 +32,7 @@ if ($IsWindows) {
# TODO - Support installing VS and necessary addins
# TODO - Install CMake
# TODO - Check for Windows preview
}
if ($Configuration -eq "Test" -or $Configuration -eq "Dev") {
# Enable SChannel TLS 1.3 (client and server).
# Enable SChannel TLS 1.3 (client and server). Unnecessary on most recent builds.
$TlsServerKeyPath = "HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server"
reg.exe add $TlsServerKeyPath /v DisabledByDefault /t REG_DWORD /d 0 /f | Out-Null
reg.exe add $TlsServerKeyPath /v Enabled /t REG_DWORD /d 1 /f | Out-Null