Skip to content

Commit 5f7840e

Browse files
author
SqlClient Azure DevOps
committed
Merge in 'release/5.1' changes
2 parents 1c4afd9 + bccd975 commit 5f7840e

8 files changed

+143
-56
lines changed

eng/pipelines/common/templates/jobs/build-signed-akv-package-job.yml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ parameters:
1717

1818
jobs:
1919
- job: build_signed_akv_package
20+
displayName: 'Build Signed AKV Provider Package'
2021
pool:
2122
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs
2223

@@ -61,20 +62,11 @@ jobs:
6162
product: AKV
6263
referenceType: package
6364

64-
# Publish symbols to private server
65+
# Publish symbols to servers
6566
- template: ../steps/publish-symbols-step.yml@self
6667
parameters:
67-
SymAccount: $(PrivateSymAccount)
68-
referenceType: package
69-
symbolsVersion: ${{variables.AKVNuGetPackageVersion }}
70-
product: AKV
71-
publishSymbols: ${{ parameters['PublishSymbols'] }}
72-
73-
# Publish symbols to public server
74-
- template: ../steps/publish-symbols-step.yml@self
75-
parameters:
76-
SymAccount: $(PublicSymAccount)
7768
referenceType: package
7869
symbolsVersion: ${{variables.AKVNuGetPackageVersion }}
7970
product: AKV
8071
publishSymbols: ${{ parameters['PublishSymbols'] }}
72+
symbolsArtifactName: akv_symbols_$(System.TeamProject)_$(Build.Repository.Name)_$(Build.SourceBranchName)_$(NuGetPackageVersion)_$(System.TimelineId)

eng/pipelines/common/templates/jobs/build-signed-package-job.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ parameters:
1717

1818
jobs:
1919
- job: build_signed_package
20+
displayName: 'Build Signed MDS Package'
2021
pool:
2122
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs
2223

@@ -49,14 +50,8 @@ jobs:
4950
parameters:
5051
product: MDS
5152

52-
# Publish symbols to private server
53+
# Publish symbols to servers
5354
- template: ../steps/publish-symbols-step.yml@self
5455
parameters:
55-
SymAccount: $(PrivateSymAccount)
56-
publishSymbols: ${{ parameters['PublishSymbols'] }}
57-
58-
# Publish symbols to public server
59-
- template: ../steps/publish-symbols-step.yml@self
60-
parameters:
61-
SymAccount: $(PublicSymAccount)
6256
publishSymbols: ${{ parameters['PublishSymbols'] }}
57+
symbolsArtifactName: mds_symbols_$(System.TeamProject)_$(Build.Repository.Name)_$(Build.SourceBranchName)_$(NuGetPackageVersion)_$(System.TimelineId)

eng/pipelines/common/templates/jobs/run-tests-package-reference-job.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ parameters:
1919

2020
jobs:
2121
- job: run_tests_package_reference
22+
displayName: 'Run tests with package reference'
2223
${{ if ne(parameters.dependsOn, 'empty')}}:
2324
dependsOn: '${{parameters.dependsOn }}'
2425
pool:

eng/pipelines/common/templates/jobs/validate-signed-package-job.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ parameters:
3939

4040
jobs:
4141
- job: validate_signed_package
42+
displayName: 'Verify signed package'
4243
${{ if ne(parameters.dependsOn, '')}}:
4344
dependsOn: '${{parameters.dependsOn }}'
4445
pool:

eng/pipelines/common/templates/steps/publish-symbols-step.yml

Lines changed: 96 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
1-
#################################################################################
2-
# Licensed to the .NET Foundation under one or more agreements. #
3-
# The .NET Foundation licenses this file to you under the MIT license. #
4-
# See the LICENSE file in the project root for more information. #
5-
#################################################################################
1+
####################################################################################
2+
# Licensed to the .NET Foundation under one or more agreements. #
3+
# The .NET Foundation licenses this file to you under the MIT license. #
4+
# See the LICENSE file in the project root for more information. #
5+
# #
6+
# doc: https://www.osgwiki.com/wiki/Symbols_Publishing_Pipeline_to_SymWeb_and_MSDL #
7+
####################################################################################
68
parameters:
79
- name: SymAccount
810
type: string
11+
default: 'SqlClientDrivers'
912

1013
- name: publishSymbols
1114
type: string
@@ -15,6 +18,23 @@ parameters:
1518
type: string
1619
default: '$(NuGetPackageVersion)'
1720

21+
- name: symbolServer
22+
type: string
23+
default: '$(SymbolServer)'
24+
25+
- name: symbolTokenUri
26+
type: string
27+
default: '$(SymbolTokenUri)'
28+
29+
- name: symbolsArtifactName
30+
type: string
31+
32+
- name: publishToServers
33+
type: object
34+
default:
35+
internal: true
36+
public: true
37+
1838
- name: referenceType
1939
default: project
2040
values:
@@ -30,12 +50,12 @@ parameters:
3050

3151
steps:
3252
- powershell: 'Write-Host "##vso[task.setvariable variable=ArtifactServices.Symbol.AccountName;]${{parameters.SymAccount}}"'
33-
displayName: 'Update Symbol.AccountName ${{parameters.SymAccount}}'
53+
displayName: 'Update Symbol.AccountName with ${{parameters.SymAccount}}'
3454
condition: and(succeeded(), ${{ eq(parameters.publishSymbols, 'true') }})
3555

3656
- ${{ if eq(parameters.product, 'MDS') }}:
3757
- task: PublishSymbols@2
38-
displayName: 'Publish symbols path'
58+
displayName: 'Upload symbols to ${{parameters.SymAccount }} org'
3959
inputs:
4060
SymbolsFolder: '$(Build.SourcesDirectory)\artifacts\${{parameters.referenceType }}\bin'
4161
SearchPattern: |
@@ -44,13 +64,16 @@ steps:
4464
IndexSources: false
4565
SymbolServerType: TeamServices
4666
SymbolsMaximumWaitTime: 60
67+
SymbolExpirationInDays: 1825 # 5 years
4768
SymbolsProduct: Microsoft.Data.SqlClient
48-
SymbolsVersion: '{{parameters.symbolsVersion }}'
69+
SymbolsVersion: ${{parameters.symbolsVersion }}
70+
SymbolsArtifactName: ${{parameters.symbolsArtifactName }}
71+
Pat: $(System.AccessToken)
4972
condition: and(succeeded(), ${{ eq(parameters.publishSymbols, 'true') }})
5073

5174
- ${{ if eq(parameters.product, 'AKV') }}:
5275
- task: PublishSymbols@2
53-
displayName: 'Publish symbols path'
76+
displayName: 'Upload symbols to ${{parameters.SymAccount }} org'
5477
inputs:
5578
SymbolsFolder: '$(Build.SourcesDirectory)\artifacts\${{parameters.referenceType }}\bin'
5679
SearchPattern: |
@@ -59,6 +82,69 @@ steps:
5982
IndexSources: false
6083
SymbolServerType: TeamServices
6184
SymbolsMaximumWaitTime: 60
85+
SymbolExpirationInDays: 1825 # 5 years
6286
SymbolsProduct: Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider
63-
SymbolsVersion: '{{parameters.symbolsVersion }}'
87+
SymbolsVersion: ${{parameters.symbolsVersion }}
88+
SymbolsArtifactName: ${{parameters.symbolsArtifactName }}
89+
Pat: $(System.AccessToken)
6490
condition: and(succeeded(), ${{ eq(parameters.publishSymbols, 'true') }})
91+
92+
- task: AzureCLI@2
93+
displayName: 'Publish symbols'
94+
condition: and(succeeded(), ${{ eq(parameters.publishSymbols, 'true') }})
95+
inputs:
96+
azureSubscription: 'Symbols publishing Workload Identity federation service-ADO.Net'
97+
scriptType: ps
98+
scriptLocation: inlineScript
99+
inlineScript: |
100+
$publishToInternalServer = "${{parameters.publishToServers.internal }}".ToLower()
101+
$publishToPublicServer = "${{parameters.publishToServers.public }}".ToLower()
102+
103+
echo "Publishing request name: ${{parameters.symbolsArtifactName }}"
104+
echo "Publish to internal server: $publishToInternalServer"
105+
echo "Publish to public server: $publishToPublicServer"
106+
107+
$symbolServer = "${{parameters.symbolServer }}"
108+
$tokenUri = "${{parameters.symbolTokenUri }}"
109+
# Registered project name in the symbol publishing pipeline: https://portal.microsofticm.com/imp/v3/incidents/incident/520844254/summary
110+
$projectName = "Microsoft.Data.SqlClient.SNI"
111+
112+
# Get the access token for the symbol publishing service
113+
$symbolPublishingToken = az account get-access-token --resource $tokenUri --query accessToken -o tsv
114+
115+
echo "> 1.Symbol publishing token acquired."
116+
117+
echo "Registering the request name ..."
118+
$requestName = "${{parameters.symbolsArtifactName }}"
119+
$requestNameRegistrationBody = "{'requestName': '$requestName'}"
120+
Invoke-RestMethod -Method POST -Uri "https://$symbolServer.trafficmanager.net/projects/$projectName/requests" -Headers @{ Authorization = "Bearer $symbolPublishingToken" } -ContentType "application/json" -Body $requestNameRegistrationBody
121+
122+
echo "> 2.Registration of request name succeeded."
123+
124+
echo "Publishing the symbols ..."
125+
$publishSymbolsBody = "{'publishToInternalServer': $publishToInternalServer, 'publishToPublicServer': $publishToPublicServer}"
126+
echo "Publishing symbols request body: $publishSymbolsBody"
127+
Invoke-RestMethod -Method POST -Uri "https://$symbolServer.trafficmanager.net/projects/$projectName/requests/$requestName" -Headers @{ Authorization = "Bearer $symbolPublishingToken" } -ContentType "application/json" -Body $publishSymbolsBody
128+
129+
echo "> 3.Request to publish symbols succeeded."
130+
131+
# The following REST calls are used to check publishing status.
132+
echo "> 4.Checking the status of the request ..."
133+
134+
Invoke-RestMethod -Method GET -Uri "https://$symbolServer.trafficmanager.net/projects/$projectName/requests/$requestName" -Headers @{ Authorization = "Bearer $symbolPublishingToken" } -ContentType "application/json"
135+
136+
echo "Use below tables to interpret the values of xxxServerStatus and xxxServerResult fields from the response."
137+
138+
echo "PublishingStatus"
139+
echo "-----------------"
140+
echo "0 NotRequested; The request has not been requested to publish."
141+
echo "1 Submitted; The request is submitted to be published"
142+
echo "2 Processing; The request is still being processed"
143+
echo "3 Completed; The request has been completed processing. It can be failed or successful. Check PublishingResult to get more details"
144+
145+
echo "PublishingResult"
146+
echo "-----------------"
147+
echo "0 Pending; The request has not completed or has not been requested."
148+
echo "1 Succeeded; The request has published successfully"
149+
echo "2 Failed; The request has failed to publish"
150+
echo "3 Cancelled; The request was cancelled"

eng/pipelines/dotnet-sqlclient-signing-pipeline.yml

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,24 +38,33 @@ parameters: # parameters are shown up in ADO UI in a build queue time
3838
displayName: 'Enable debug output'
3939
type: boolean
4040
default: false
41-
- name: oneBranchType
42-
displayName: 'Select OneBranch template'
43-
default: Official
44-
values:
45-
- NonOfficial
46-
- Official
41+
4742
- name: publishSymbols
4843
type: boolean
4944
default: false
45+
5046
- name: MDS_PackageRef_Version
5147
displayName: 'MDS package version of AKV Provider (build AKV)'
5248
type: string
5349
default: 3.0.0
50+
5451
- name: CurrentNetFxVersion
5552
displayName: 'Lowest supported .NET Framework version (MDS validation)'
5653
type: string
5754
default: 'net462'
5855

56+
- name: enableAllSdlTools
57+
displayName: 'Enable all SDL tools'
58+
type: boolean
59+
default: true
60+
61+
- name: oneBranchType
62+
displayName: 'Select OneBranch template'
63+
default: Official
64+
values:
65+
- NonOfficial
66+
- Official
67+
5968
variables:
6069
- template: /eng/pipelines/libraries/variables.yml@self
6170
- name: packageFolderName
@@ -77,51 +86,52 @@ resources:
7786
ref: refs/heads/main
7887

7988
extends:
80-
template: v2/OneBranch.${{ parameters['oneBranchType'] }}.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
89+
template: v2/OneBranch.${{parameters.oneBranchType }}.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
8190
parameters:
8291
featureFlags:
8392
WindowsHostVersion: 1ESWindows2022
8493
globalSdl: # https://aka.ms/obpipelines/sdl
8594
apiscan:
86-
enabled: true
95+
enabled: ${{parameters.enableAllSdlTools }}
8796
softwareFolder: $(softwareFolder)
8897
symbolsFolder: $(symbolsFolder)
8998
softwarename: Microsoft.Data.SqlClient
9099
versionNumber: $(AssemblyFileVersion)
91100
tsa:
92-
enabled: true # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode.
101+
enabled: ${{parameters.enableAllSdlTools }} # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode.
93102
codeql:
94103
compiled:
95104
enabled: false #[warning]Consider running CodeQL on the default branch only.
96105
sbom:
97-
enabled: true
106+
enabled: ${{parameters.enableAllSdlTools }}
98107
packageName: Microsoft.Data.SqlClient
99108
packageVersion: $(NugetPackageVersion)
100109
policheck:
101-
enabled: true
110+
enabled: ${{parameters.enableAllSdlTools }}
102111
break: true # always break the build on policheck issues. You can disable it by setting to 'false'
103112
exclusionsFile: $(REPOROOT)\.config\PolicheckExclusions.xml
104113
asyncSdl:
105114
enabled: false
106115
credscan:
107-
enabled: true
116+
enabled: ${{parameters.enableAllSdlTools }}
108117
suppressionsFile: $(REPOROOT)/.config/CredScanSuppressions.json
109118
binskim:
110-
enabled: true
119+
enabled: ${{parameters.enableAllSdlTools }}
111120
armory:
112-
enabled: true
121+
enabled: ${{parameters.enableAllSdlTools }}
113122
break: true
114123
eslint: # TypeScript and JavaScript
115124
enabled: false
116125
roslyn:
117-
enabled: true
126+
enabled: ${{parameters.enableAllSdlTools }}
118127
break: true
119128
publishLogs:
120-
enabled: true
129+
enabled: ${{parameters.enableAllSdlTools }}
121130
tsaOptionsPath: $(REPOROOT)\.config\tsaoptions.json
122131
disableLegacyManifest: true
123132
stages:
124133
- stage: buildAKV
134+
displayName: 'Build AKV Provider'
125135
jobs:
126136
- template: eng/pipelines/common/templates/jobs/build-signed-akv-package-job.yml@self
127137
parameters:
@@ -130,14 +140,16 @@ extends:
130140
publishSymbols: ${{ parameters['publishSymbols'] }}
131141

132142
- stage: buildMDS
143+
displayName: 'Build MDS'
133144
jobs:
134145
- template: eng/pipelines/common/templates/jobs/build-signed-package-job.yml@self
135146
parameters:
136147
symbolsFolder: $(symbolsFolder)
137148
softwareFolder: $(softwareFolder)
138149
publishSymbols: ${{ parameters['publishSymbols'] }}
139150

140-
- stage: package_validation
151+
- stage: mds_package_validation
152+
displayName: 'MDS Package Validation'
141153
dependsOn: buildMDS
142154
jobs:
143155
- template: eng/pipelines/common/templates/jobs/validate-signed-package-job.yml@self

tools/props/Versions.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
</PropertyGroup>
2828
<!-- NetFx and NetCore project dependencies -->
2929
<PropertyGroup>
30-
<AzureIdentityVersion>1.11.3</AzureIdentityVersion>
31-
<MicrosoftIdentityClientVersion>4.60.3</MicrosoftIdentityClientVersion>
30+
<AzureIdentityVersion>1.11.4</AzureIdentityVersion>
31+
<MicrosoftIdentityClientVersion>4.61.3</MicrosoftIdentityClientVersion>
3232
<MicrosoftIdentityModelProtocolsOpenIdConnectVersion>6.35.0</MicrosoftIdentityModelProtocolsOpenIdConnectVersion>
3333
<MicrosoftIdentityModelJsonWebTokensVersion>6.35.0</MicrosoftIdentityModelJsonWebTokensVersion>
3434
<SystemBuffersVersion>4.5.1</SystemBuffersVersion>

tools/specs/Microsoft.Data.SqlClient.nuspec

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ When using NuGet 3.x this package requires at least version 3.4.</description>
2929
<dependencies>
3030
<group targetFramework="net462">
3131
<dependency id="Microsoft.Data.SqlClient.SNI" version="5.1.1" />
32-
<dependency id="Azure.Identity" version="1.11.3" />
33-
<dependency id="Microsoft.Identity.Client" version="4.60.3" />
32+
<dependency id="Azure.Identity" version="1.11.4" />
33+
<dependency id="Microsoft.Identity.Client" version="4.61.3" />
3434
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="6.35.0" />
3535
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.35.0" />
3636
<dependency id="System.Buffers" version="4.5.1" />
@@ -40,8 +40,8 @@ When using NuGet 3.x this package requires at least version 3.4.</description>
4040
</group>
4141
<group targetFramework="net6.0">
4242
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="5.1.1" exclude="Compile" />
43-
<dependency id="Azure.Identity" version="1.11.3" />
44-
<dependency id="Microsoft.Identity.Client" version="4.60.3" exclude="Compile"/>
43+
<dependency id="Azure.Identity" version="1.11.4" />
44+
<dependency id="Microsoft.Identity.Client" version="4.61.3" exclude="Compile"/>
4545
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.35.0" />
4646
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="6.35.0" />
4747
<dependency id="Microsoft.SqlServer.Server" version="1.0.0"/>
@@ -55,8 +55,8 @@ When using NuGet 3.x this package requires at least version 3.4.</description>
5555
</group>
5656
<group targetFramework="netstandard2.0">
5757
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="5.1.1" exclude="Compile" />
58-
<dependency id="Azure.Identity" version="1.11.3" />
59-
<dependency id="Microsoft.Identity.Client" version="4.60.3" exclude="Compile"/>
58+
<dependency id="Azure.Identity" version="1.11.4" />
59+
<dependency id="Microsoft.Identity.Client" version="4.61.3" exclude="Compile"/>
6060
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.35.0" />
6161
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="6.35.0" />
6262
<dependency id="Microsoft.SqlServer.Server" version="1.0.0"/>
@@ -72,8 +72,8 @@ When using NuGet 3.x this package requires at least version 3.4.</description>
7272
</group>
7373
<group targetFramework="netstandard2.1">
7474
<dependency id="Microsoft.Data.SqlClient.SNI.runtime" version="5.1.1" exclude="Compile" />
75-
<dependency id="Azure.Identity" version="1.11.3" />
76-
<dependency id="Microsoft.Identity.Client" version="4.60.3" exclude="Compile"/>
75+
<dependency id="Azure.Identity" version="1.11.4" />
76+
<dependency id="Microsoft.Identity.Client" version="4.61.3" exclude="Compile"/>
7777
<dependency id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.35.0" />
7878
<dependency id="Microsoft.IdentityModel.JsonWebTokens" version="6.35.0" />
7979
<dependency id="Microsoft.SqlServer.Server" version="1.0.0"/>

0 commit comments

Comments
 (0)