4
4
# See the LICENSE file in the project root for more information. #
5
5
# ################################################################################
6
6
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
+
7
42
# Set the pipeline run name to the day-of-year and the daily run counter.
8
43
name : $(DayOfYear)$(Rev:rr)
9
44
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.
10
90
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]
73
148
74
149
extends :
75
150
template : dotnet-sqlclient-ci-core.yml@self
76
151
parameters :
152
+ buildConfiguration : ${{ parameters.buildConfiguration }}
153
+ buildPlatforms : ${{ parameters.buildPlatforms }}
154
+ buildType : Package
155
+ codeCovTargetFrameworks : ${{ parameters.codeCovTargetFrameworks }}
77
156
debug : ${{ parameters.debug }}
157
+ enableStressTests : ${{ parameters.enableStressTests }}
78
158
targetFrameworks : ${{ parameters.targetFrameworks }}
79
159
targetFrameworksLinux : ${{ parameters.targetFrameworksLinux }}
80
- buildPlatforms : ${{ parameters.buildPlatforms }}
81
160
testSets : ${{ parameters.testSets }}
82
- useManagedSNI : ${{ parameters.useManagedSNI }}
83
- codeCovTargetFrameworks : ${{ parameters.codeCovTargetFrameworks }}
84
- buildType : ${{ parameters.buildType }}
85
- buildConfiguration : ${{ parameters.buildConfiguration }}
86
- enableStressTests : ${{ parameters.enableStressTests }}
87
161
# Populate the actual test job timeout numeric values if Default was
88
162
# specified. We choose different values depending on the build
89
163
# configuration.
@@ -96,3 +170,4 @@ extends:
96
170
testJobTimeout : 90
97
171
${{ else }} :
98
172
testJobTimeout : ${{ parameters.testJobTimeout }}
173
+ useManagedSNI : ${{ parameters.useManagedSNI }}
0 commit comments