Skip to content

Commit 478ba6c

Browse files
committed
- Hopefully fixed expansion of stage dependencies.
- Moved secrets_stage dependency into stages.
1 parent 538bbe3 commit 478ba6c

5 files changed

Lines changed: 61 additions & 59 deletions

File tree

eng/pipelines/common/templates/stages/ci-run-tests-stage.yml

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@
33
# The .NET Foundation licenses this file to you under the MIT license. #
44
# See the LICENSE file in the project root for more information. #
55
#################################################################################
6+
7+
# This stage depends on the secrets_stage.
8+
69
parameters:
710
- name: abstractionsArtifactsName
811
type: string
912

1013
- name: abstractionsPackageVersion
1114
type: string
1215

16+
- name: additionalDependsOn
17+
type: object
18+
default: []
19+
1320
- name: buildConfiguration
1421
type: string
1522
values:
@@ -20,10 +27,6 @@ parameters:
2027
type: boolean
2128
default: false
2229

23-
- name: dependsOn
24-
type: object
25-
default: []
26-
2730
- name: mdsArtifactsName
2831
type: string
2932
default: MDS.Artifacts
@@ -45,10 +48,6 @@ parameters:
4548
- Project
4649
- Package
4750

48-
# The SA password to set when configuring SQL Server.
49-
- name: saPassword
50-
type: string
51-
5251
- name: testConfigurations
5352
type: object
5453

@@ -60,7 +59,15 @@ stages:
6059
- ${{ each config in parameters.testConfigurations }}:
6160
- ${{ each image in config.value.images }}:
6261
- stage: ${{ image.key }}
63-
dependsOn: ${{ parameters.dependsOn }}
62+
dependsOn:
63+
- secrets_stage
64+
- ${{ parameters.additionalDependsOn }}
65+
66+
variables:
67+
# Bring the SA password from the secrets_stage into scope here.
68+
- name: saPassword
69+
value: $[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]
70+
6471
jobs:
6572
- ${{ each targetFramework in config.value.TargetFrameworks }}:
6673
- ${{ each platform in config.value.buildPlatforms }}:
@@ -91,7 +98,7 @@ stages:
9198
configSqlFor: ${{ config.value.configSqlFor }}
9299
operatingSystem: ${{ config.value.operatingSystem }}
93100
isArm64: ${{ eq(config.value.isArm64, 'true') }}
94-
saPassword: ${{ parameters.saPassword }}
101+
saPassword: $(saPassword)
95102
${{if ne(config.value.configProperties, '{}') }}:
96103
${{ each x86TF in config.value.configProperties.x86TestTargetFrameworks }}:
97104
${{ if eq(x86TF, targetFramework) }}:
@@ -128,7 +135,7 @@ stages:
128135
configSqlFor: ${{ config.value.configSqlFor }}
129136
operatingSystem: ${{ config.value.operatingSystem }}
130137
isArm64: ${{ eq(config.value.isArm64, 'true') }}
131-
saPassword: ${{ parameters.saPassword }}
138+
saPassword: $(saPassword)
132139
${{if and(eq(usemanagedSNI, false), ne(config.value.configProperties, '{}')) }}:
133140
${{ each x86TF in config.value.configProperties.x86TestTargetFrameworks }}:
134141
${{ if eq(x86TF, targetFramework) }}:

eng/pipelines/dotnet-sqlclient-ci-core.yml

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -178,33 +178,26 @@ stages:
178178
# When building via packages, we must depend on the Abstractions and MDS
179179
# packages.
180180
${{ if eq(parameters.referenceType, 'Package') }}:
181-
dependsOn:
182-
- secrets_stage
181+
additionalDependsOn:
183182
- build_abstractions_package_stage
184183
- build_mds_akv_packages_stage
185-
${{ else }}:
186-
dependsOn:
187-
- secrets_stage
188184
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
189185
mdsArtifactsName: $(mdsArtifactsName)
190186
mdsPackageVersion: $(mdsPackageVersion)
191187
referenceType: ${{ parameters.referenceType }}
192-
saPassword: $[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]
193188

194189
# Run the stress tests, if desired.
195190
- ${{ if eq(parameters.enableStressTests, true) }}:
196191
- template: /eng/pipelines/stages/stress-tests-ci-stage.yml@self
197192
parameters:
198193
buildConfiguration: ${{ parameters.buildConfiguration }}
199-
dependsOn:
200-
- secrets_stage
194+
additionalDependsOn:
201195
- build_mds_akv_packages_stage
202196
- build_azure_package_stage
203197
mdsArtifactsName: $(mdsArtifactsName)
204198
mdsPackageVersion: $(mdsPackageVersion)
205199
azurePackageVersion: $(azurePackageVersion)
206200
dotnetVerbosity: ${{ parameters.dotnetVerbosity }}
207-
saPassword: $[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]
208201

209202
# Run the MDS and AKV tests.
210203
- template: /eng/pipelines/common/templates/stages/ci-run-tests-stage.yml@self
@@ -216,20 +209,15 @@ stages:
216209
abstractionsPackageVersion: $(abstractionsPackageVersion)
217210
mdsArtifactsName: $(mdsArtifactsName)
218211
mdsPackageVersion: $(mdsPackageVersion)
219-
saPassword: $[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]
220212
testJobTimeout: ${{ parameters.testJobTimeout }}
221213

222214
# When testing MDS via packages, we must depend on the Abstractions,
223215
# MDS, and Azure packages.
224216
${{ if eq(parameters.referenceType, 'Package') }}:
225-
dependsOn:
226-
- secrets_stage
217+
additionalDependsOn:
227218
- build_abstractions_package_stage
228219
- build_mds_akv_packages_stage
229220
- build_azure_package_stage
230-
${{ else }}:
231-
dependsOn:
232-
- secrets_stage
233221

234222
# Steps to run prior to building and running tests on each job.
235223
prebuildSteps:

eng/pipelines/stages/build-azure-package-ci-stage.yml

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
# The packages are published to pipeline artifacts with the name specified by
2121
# the azureArtifactsName parameter.
2222
#
23+
# This stage depends on the secrets_stage.
24+
#
2325
# This template defines a stage named 'build_azure_package_stage' that
2426
# can be depended on by downstream stages.
2527

@@ -38,6 +40,11 @@ parameters:
3840
- name: abstractionsPackageVersion
3941
type: string
4042

43+
# Additional stages we depend on, if any.
44+
- name: additionalDependsOn
45+
type: object
46+
default: []
47+
4148
# The name of the pool to use for jobs that require customized VM images.
4249
- name: adoPoolName
4350
type: string
@@ -79,11 +86,6 @@ parameters:
7986
type: boolean
8087
default: false
8188

82-
# The stages we depend on, if any.
83-
- name: dependsOn
84-
type: object
85-
default: []
86-
8789
# The dotnet CLI verbosity to use.
8890
- name: dotnetVerbosity
8991
type: string
@@ -119,16 +121,19 @@ parameters:
119121
- Package
120122
- Project
121123

122-
# The SA password to set when configuring SQL Server.
123-
- name: saPassword
124-
type: string
125-
126124
stages:
127125

128126
- stage: build_azure_package_stage
129127
displayName: Build Azure Package
130128

131-
dependsOn: ${{ parameters.dependsOn }}
129+
dependsOn:
130+
- secrets_stage
131+
- ${{ parameters.additionalDependsOn }}
132+
133+
variables:
134+
# Bring the SA password from the secrets_stage into scope here.
135+
- name: saPassword
136+
value: $[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]
132137

133138
jobs:
134139

@@ -168,13 +173,13 @@ stages:
168173
netRuntimes: [net8.0, net9.0, net10.0]
169174
poolName: ${{ parameters.adoPoolName }}
170175
referenceType: ${{ parameters.referenceType }}
171-
saPassword: ${{ parameters.saPassword }}
176+
saPassword: $(saPassword)
172177
# The image includes a SQL Server instance that we must configure.
173178
sqlServerSetupSteps:
174179
- template: /eng/pipelines/common/templates/steps/configure-sql-server-linux-step.yml@self
175180
parameters:
176181
debug: ${{ parameters.debug }}
177-
saPassword: ${{ parameters.saPassword }}
182+
saPassword: $(saPassword)
178183
vmImage: ADO-UB22-SQL22
179184

180185
# ------------------------------------------------------------------------
@@ -214,14 +219,14 @@ stages:
214219
netRuntimes: [net8.0, net9.0, net10.0]
215220
poolName: ${{ parameters.adoPoolName }}
216221
referenceType: ${{ parameters.referenceType }}
217-
saPassword: ${{ parameters.saPassword }}
222+
saPassword: $(saPassword)
218223
# The image includes a SQL Server instance that we must configure.
219224
sqlServerSetupSteps:
220225
- template: /eng/pipelines/common/templates/steps/configure-sql-server-win-step.yml@self
221226
# Use defaults for most parameters.
222227
parameters:
223228
debug: ${{ parameters.debug }}
224-
saPassword: ${{ parameters.saPassword }}
229+
saPassword: $(saPassword)
225230
enableLocalDB: true
226231
# These variables are from an Azure DevOps Library variable
227232
# group.

eng/pipelines/stages/generate-secrets-ci-stage.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,12 @@ stages:
5454
#
5555
- bash: |
5656
guid=$(cat /proc/sys/kernel/random/uuid)
57-
echo "##vso[task.setvariable variable=Value;isSecret=true;isOutput=true]$guid"
57+
echo "##vso[task.setvariable variable=Value;isOutput=true]$guid"
5858
name: SaPassword
5959
displayName: Generate SA password
6060
6161
# Emit the SA password, if desired.
6262
- ${{ if eq(parameters.debug, true) }}:
6363
- bash: |
64-
# Avoid Azure Pipelines masking the value by introducing some indirection.
65-
$pwd = "$[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]"
66-
echo "SA password: $pwd"
64+
echo "SA password: $(SaPassword.Value)"
6765
displayName: Emit SA password

eng/pipelines/stages/stress-tests-ci-stage.yml

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,19 @@
1414
# All tests use a localhost SQL Server configured for SQL auth via the 'sa' user
1515
# and the provided password.
1616
#
17+
# This stage depends on the secrets_stage.
18+
#
1719
# This template defines a stage named 'run_stress_tests_stage' that can be
1820
# depended on by downstream stages.
1921

2022
parameters:
2123

24+
# The names of any additional stages this stage depends on, for example the stages that publish
25+
# the MDS package artifacts we will test.
26+
- name: additionalDependsOn
27+
type: object
28+
default: []
29+
2230
# The Azure package version to stress test. This version must be available in
2331
# one of the configured NuGet sources.
2432
- name: azurePackageVersion
@@ -33,12 +41,6 @@ parameters:
3341
- Debug
3442
- Release
3543

36-
# The names of any stages this stage depends on, for example the stages
37-
# that publish the MDS package artifacts we will test.
38-
- name: dependsOn
39-
type: object
40-
default: []
41-
4244
# The verbosity level for the dotnet CLI commands.
4345
- name: dotnetVerbosity
4446
type: string
@@ -69,14 +71,12 @@ parameters:
6971
type: object
7072
default: [net8.0, net9.0, net10.0]
7173

72-
# The SA password to set when configuring SQL Server.
73-
- name: saPassword
74-
type: string
75-
7674
stages:
7775
- stage: run_stress_tests_stage
7876
displayName: Run Stress Tests
79-
dependsOn: ${{ parameters.dependsOn }}
77+
dependsOn:
78+
- secrets_stage
79+
- ${{ parameters.additionalDependsOn }}
8080

8181
variables:
8282
# The directory where dotnet artifacts will be staged. Not to be
@@ -106,6 +106,10 @@ stages:
106106
$(commonArguments)
107107
--configuration ${{parameters.buildConfiguration}}
108108
109+
# Bring the SA password from the secrets_stage into scope here.
110+
- name: saPassword
111+
value: $[stageDependencies.secrets_stage.secrets_job.outputs['SaPassword.Value']]
112+
109113
# The contents of the config file to use for all tests. We will write
110114
# this to a JSON file for each test job, and then point to it via the
111115
# STRESS_CONFIG_FILE environment variable.
@@ -118,7 +122,7 @@ stages:
118122
"isDefault": true,
119123
"dataSource": "localhost",
120124
"user": "sa",
121-
"password": "${{ parameters.saPassword }}",
125+
"password": "$(saPassword)",
122126
"supportsWindowsAuthentication": false,
123127
"isLocal": false,
124128
"disableMultiSubnetFailover": true,
@@ -141,7 +145,7 @@ stages:
141145
sqlSetupStep:
142146
template: /eng/pipelines/common/templates/steps/configure-sql-server-linux-step.yml@self
143147
parameters:
144-
saPassword: ${{ parameters.saPassword }}
148+
saPassword: $(saPassword)
145149
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
146150
solution: $(solution)
147151
testProject: $(testProject)
@@ -164,7 +168,7 @@ stages:
164168
sqlSetupStep:
165169
template: /eng/pipelines/common/templates/steps/configure-sql-server-win-step.yml@self
166170
parameters:
167-
saPassword: ${{ parameters.saPassword }}
171+
saPassword: $(saPassword)
168172
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
169173
solution: $(solution)
170174
testProject: $(testProject)
@@ -190,7 +194,7 @@ stages:
190194
sqlSetupStep:
191195
template: /eng/pipelines/common/templates/steps/configure-sql-server-macos-step.yml@self
192196
parameters:
193-
saPassword: ${{ parameters.saPassword }}
197+
saPassword: $(saPassword)
194198
mdsArtifactsName: ${{ parameters.mdsArtifactsName }}
195199
solution: $(solution)
196200
testProject: $(testProject)

0 commit comments

Comments
 (0)