Skip to content

Commit 0b66b9c

Browse files
committed
Updated CI pipelines to be triggered by pushes to main and a schedule only.
1 parent 33ddaa0 commit 0b66b9c

5 files changed

+422
-344
lines changed

eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml

Lines changed: 143 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -4,86 +4,160 @@
44
# See the LICENSE file in the project root for more information. #
55
#################################################################################
66

7+
# This pipeline builds and tests the following packages using package
8+
# references:
9+
#
10+
# - Microsoft.SqlServer.Server
11+
# - Microsoft.Data.SqlClient
12+
# - Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider
13+
#
14+
# It runs via CI push triggers and schedules:
15+
#
16+
# - Commits to GitHub main
17+
# - Commits to ADO internal/main
18+
# - Weekdays at 01:00 UTC on GitHub main
19+
# - Thursdays at 03:00 UTC on ADO internal/main
20+
#
21+
# GOTCHA: This pipeline definition is triggered by GitHub _and_ ADO CI. We are
22+
# able to define different triggers and schedules using branch filters:
23+
#
24+
# - Only the GitHub repo has a 'main' branch, so its presence indicates that
25+
# the pipeline run was triggered via GitHub.
26+
#
27+
# - Only the ADO repo has an 'internal/main' branch.
28+
#
29+
# Changes are batched together to ensure that the pipline never runs
30+
# concurrently.
31+
#
32+
# This pipeline definition is mapped to the following Azure DevOps pipelines:
33+
#
34+
# - CI-SqlClient-Package in the Public project:
35+
#
36+
# https://sqlclientdrivers.visualstudio.com/public/_build?definitionId=1917
37+
#
38+
# - MDS Main CI-Package in the ADO.net project:
39+
#
40+
# https://sqlclientdrivers.visualstudio.com/ADO.Net/_build?definitionId=1933
41+
742
# Set the pipeline run name to the day-of-year and the daily run counter.
843
name: $(DayOfYear)$(Rev:rr)
944

45+
# Trigger this pipeline on commits to certain branches.
46+
trigger:
47+
48+
# Don't trigger a new run until the previous one completes.
49+
batch: true
50+
51+
branches:
52+
include:
53+
# GitHub main branch.
54+
- main
55+
56+
# ADO internal/main branch.
57+
- internal/main
58+
59+
paths:
60+
include:
61+
- .azuredevops
62+
- .config
63+
- src
64+
- eng
65+
- tools
66+
- azurepipelines-coverage.yml
67+
- build.proj
68+
- NuGet.config
69+
70+
# Trigger this pipline on a schedule.
71+
schedules:
72+
73+
# GitHub main on weekdays
74+
- cron: '0 3 * * Mon-Fri'
75+
displayName: Weekday Release Build
76+
branches:
77+
include:
78+
- main
79+
always: true
80+
81+
# ADO internal/main on Thursdays.
82+
- cron: '0 5 * * Thu'
83+
displayName: Thursday Release Build
84+
branches:
85+
include:
86+
- internal/main
87+
always: true
88+
89+
# Pipeline parameters, visible in the Azure DevOps UI.
1090
parameters:
11-
- name: 'debug'
12-
displayName: 'Enable debug output'
13-
type: boolean
14-
default: false
15-
16-
- name: targetFrameworks
17-
displayName: 'Target Frameworks on Windows'
18-
type: object
19-
default: [net462, net8.0, net9.0]
20-
21-
- name: targetFrameworksLinux
22-
displayName: 'Target Frameworks on Non-Windows'
23-
type: object
24-
default: [net8.0, net9.0]
25-
26-
- name: buildPlatforms
27-
displayName: 'Build Platforms on Windows'
28-
type: object
29-
default: [AnyCPU]
30-
31-
- name: testSets
32-
displayName: 'Test Sets'
33-
type: object
34-
default: [1, 2, 3]
35-
36-
- name: useManagedSNI
37-
displayName: |
38-
Use Managed/Native SNI on Windows,
39-
values [false, true], [false] or [true] are allowed
40-
type: object
41-
default: [false, true]
42-
43-
- name: codeCovTargetFrameworks
44-
displayName: 'Code Coverage Target Frameworks'
45-
type: object
46-
default: [net462, net8.0]
47-
48-
- name: buildType
49-
displayName: 'Build Type'
50-
default: Package
51-
values:
52-
- Project
53-
- Package
54-
55-
- name: buildConfiguration
56-
displayName: 'Build Configuration'
57-
type: string
58-
default: Debug
59-
values:
60-
- Debug
61-
- Release
62-
63-
- name: enableStressTests
64-
displayName: Enable Stress Tests
65-
type: boolean
66-
default: false
67-
68-
# The timeout, in minutes, for each test job.
69-
- name: testJobTimeout
70-
displayName: 'Test job timeout (in minutes)'
71-
type: string
72-
default: Default
91+
92+
# The build configuration to use; defaults to Release.
93+
- name: buildConfiguration
94+
displayName: Build Configuration
95+
type: string
96+
default: Release
97+
values:
98+
- Debug
99+
- Release
100+
101+
- name: buildPlatforms
102+
displayName: Build Platforms on Windows
103+
type: object
104+
default: [AnyCPU]
105+
106+
- name: codeCovTargetFrameworks
107+
displayName: Code Coverage Target Frameworks
108+
type: object
109+
default: [net462, net8.0]
110+
111+
- name: debug
112+
displayName: Enable debug output
113+
type: boolean
114+
default: false
115+
116+
- name: enableStressTests
117+
displayName: Enable Stress Tests
118+
type: boolean
119+
default: false
120+
121+
- name: targetFrameworks
122+
displayName: Target Frameworks on Windows
123+
type: object
124+
default: [net462, net8.0, net9.0]
125+
126+
- name: targetFrameworksLinux
127+
displayName: Target Frameworks on Non-Windows
128+
type: object
129+
default: [net8.0, net9.0]
130+
131+
- name: testSets
132+
displayName: Test Sets
133+
type: object
134+
default: [1, 2, 3]
135+
136+
# The timeout, in minutes, for each test job.
137+
- name: testJobTimeout
138+
displayName: Test job timeout (in minutes)
139+
type: string
140+
default: Default
141+
142+
- name: useManagedSNI
143+
displayName: |
144+
Use Managed/Native SNI on Windows,
145+
values [false, true], [false] or [true] are allowed
146+
type: object
147+
default: [false, true]
73148

74149
extends:
75150
template: dotnet-sqlclient-ci-core.yml@self
76151
parameters:
152+
buildConfiguration: ${{ parameters.buildConfiguration }}
153+
buildPlatforms: ${{ parameters.buildPlatforms }}
154+
buildType: Package
155+
codeCovTargetFrameworks: ${{ parameters.codeCovTargetFrameworks }}
77156
debug: ${{ parameters.debug }}
157+
enableStressTests: ${{ parameters.enableStressTests }}
78158
targetFrameworks: ${{ parameters.targetFrameworks }}
79159
targetFrameworksLinux: ${{ parameters.targetFrameworksLinux }}
80-
buildPlatforms: ${{ parameters.buildPlatforms }}
81160
testSets: ${{ parameters.testSets }}
82-
useManagedSNI: ${{ parameters.useManagedSNI }}
83-
codeCovTargetFrameworks: ${{ parameters.codeCovTargetFrameworks }}
84-
buildType: ${{ parameters.buildType }}
85-
buildConfiguration: ${{ parameters.buildConfiguration }}
86-
enableStressTests: ${{ parameters.enableStressTests }}
87161
# Populate the actual test job timeout numeric values if Default was
88162
# specified. We choose different values depending on the build
89163
# configuration.
@@ -96,3 +170,4 @@ extends:
96170
testJobTimeout: 90
97171
${{ else }}:
98172
testJobTimeout: ${{ parameters.testJobTimeout }}
173+
useManagedSNI: ${{ parameters.useManagedSNI }}

0 commit comments

Comments
 (0)