Reduce incidence of build storms (#3079)

* Narrower build trigger matrix, introduce batching so changes to main don't trigger builds for every checkin if there are other builds running, expand core to test everything in CI

* Wire up CtestExcludeRegex

* Improvements including scoping to exclude storage tests

* Use correct trigger settings for storage
This commit is contained in:
Daniel Jurek 2021-11-08 15:01:50 -08:00 committed by GitHub
parent f84c8d2af7
commit 198327e16c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 30 additions and 35 deletions

View File

@ -14,6 +14,9 @@ parameters:
- name: CtestRegex
type: string
default: .*
- name: CtestExcludeRegex
type: string
default: ''
- name: BuildReleaseArtifacts
type: boolean
default: true
@ -41,6 +44,7 @@ jobs:
ServiceDirectory: ${{ parameters.ServiceDirectory }}
TestPipeline: ${{ parameters.TestPipeline }}
CtestRegex: ${{ parameters.CtestRegex }}
CtestExcludeRegex: ${{ parameters.CtestExcludeRegex }}
CoverageReportPath: ${{ parameters.CoverageReportPath }}
CoverageEnabled: ${{ parameters.CoverageEnabled }}
LineCoverageTarget: ${{ parameters.LineCoverageTarget }}

View File

@ -11,6 +11,9 @@ parameters:
- name: CtestRegex
type: string
default: .*
- name: CtestExcludeRegex
type: string
default: ''
- name: CoverageReportPath
type: string
default: 'sdk/*/*/*cov_xml.xml'
@ -125,8 +128,16 @@ jobs:
BuildArgs: "$(BuildArgs)"
Env: "$(CmakeEnvArg)"
- script: ctest -C Debug -V --tests-regex ${{ parameters.CtestRegex }} --no-compress-output -T Test
- pwsh: |
ctest `
-C Debug `
-V `
--tests-regex '${{ parameters.CtestRegex }}' `
--exclude-regex '${{ parameters.CtestExcludeRegex }}' `
--no-compress-output `
-T Test
workingDirectory: build
displayName: Test
- task: PublishTestResults@2
inputs:

View File

@ -153,7 +153,7 @@ stages:
parameters:
WorkingDirectory: $(Pipeline.Workspace)/vcpkg
# SkipCheckingForChanges is true to skip the commit step
# SkipCheckingForChanges is true to skip the commit step
# (which is already done by Update-VcpkgPort.ps1)
- template: /eng/common/pipelines/templates/steps/create-pull-request.yml
parameters:

View File

@ -5,6 +5,9 @@ parameters:
- name: CtestRegex
type: string
default: .*
- name: CtestExcludeRegex
type: string
default: ''
- name: CoverageEnabled
type: boolean
default: true
@ -41,6 +44,7 @@ stages:
ServiceDirectory: ${{ parameters.ServiceDirectory }}
Artifacts: ${{ parameters.Artifacts }}
CtestRegex: ${{ parameters.CtestRegex }}
CtestExcludeRegex: ${{ parameters.CtestExcludeRegex }}
CoverageEnabled: ${{ parameters.CoverageEnabled }}
CoverageReportPath: ${{ parameters.CoverageReportPath }}
LineCoverageTarget: ${{ parameters.LineCoverageTarget }}

View File

@ -1,5 +1,6 @@
# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file.
trigger:
batch: true
branches:
include:
- master
@ -34,7 +35,11 @@ stages:
parameters:
ServiceDirectory: core
# CI has static code analysis disabled, while LiveTest will have it enabled
CtestRegex: azure-core.
# In the case of changes to core we want to re-run all CI tests for all
# libraries to check for potential regressions everywhere.
CtestRegex: .*
# Storage tests are live-only tests and must be excluded from CI runs
CtestExcludeRegex: livetest|azure-storage
LiveTestCtestRegex: '"azure-core.|json-test"'
LiveTestTimeoutInMinutes: 90 # default is 60 min. We need a little longer on worst case for Win+jsonTests
LineCoverageTarget: 77

View File

@ -1,5 +1,6 @@
# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file.
trigger:
batch: true
branches:
include:
- main
@ -8,9 +9,6 @@ trigger:
- hotfix/*
paths:
include:
- eng/
- CMakeLists.txt
- sdk/core
- sdk/identity
pr:
@ -22,9 +20,6 @@ pr:
- hotfix/*
paths:
include:
- eng/
- CMakeLists.txt
- sdk/core
- sdk/identity
stages:

View File

@ -1,5 +1,6 @@
# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file.
trigger:
batch: true
branches:
include:
- main
@ -8,10 +9,6 @@ trigger:
- hotfix/*
paths:
include:
- cmake-modules/
- eng/
- CMakeLists.txt
- sdk/core
- sdk/keyvault
pr:
@ -23,10 +20,6 @@ pr:
- hotfix/*
paths:
include:
- cmake-modules/
- eng/
- CMakeLists.txt
- sdk/core/
- sdk/keyvault
stages:

View File

@ -8,11 +8,6 @@ trigger:
- hotfix/*
paths:
include:
- cmake-modules/
- eng/
- CMakeLists.txt
- sdk/core
- sdk/identity
- sdk/storage
pr:
@ -24,11 +19,6 @@ pr:
- hotfix/*
paths:
include:
- cmake-modules/
- eng/
- CMakeLists.txt
- sdk/core/
- sdk/identity/
- sdk/storage
stages:

View File

@ -1,5 +1,6 @@
# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file.
trigger:
batch: true
branches:
include:
- main
@ -8,10 +9,6 @@ trigger:
- hotfix/*
paths:
include:
- cmake-modules/
- eng/
- CMakeLists.txt
- sdk/core
- sdk/template
pr:
@ -23,10 +20,6 @@ pr:
- hotfix/*
paths:
include:
- cmake-modules/
- eng/
- CMakeLists.txt
- sdk/core/
- sdk/template
stages: