Skip to content

Commit 9ebbc68

Browse files
author
SqlClient Azure DevOps
committed
Merge in 'release/5.2' changes
2 parents f2530d5 + 1d9b148 commit 9ebbc68

15 files changed

+214
-43
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/build-all-configurations-signed-dlls-step.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ steps:
3636
inputs:
3737
solution: '**/build.proj'
3838
configuration: '${{parameters.Configuration }}'
39-
msbuildArguments: '-p:AssemblyFileVersion=${{parameters.AssemblyFileVersion }} -t:BuildAllConfigurations -p:GenerateNuget=false -p:SignAssembly=true -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)\netfxKeypair.snk'
39+
msbuildArguments: '-p:AssemblyFileVersion=${{parameters.AssemblyFileVersion }} -t:BuildAllConfigurations -p:GenerateNuget=false -p:SignAssembly=true -p:SigningKeyPath=$(Agent.TempDirectory)\netfxKeypair.snk'
4040

4141
- ${{ if eq(parameters.product, 'AKV') }}:
4242
- task: MSBuild@1

eng/pipelines/common/templates/steps/code-analyze-step.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ steps:
3434
msBuildVersion: 17.0
3535
msBuildArchitecture: x64
3636
setupCommandlinePicker: vs2022
37-
msBuildCommandline: 'msbuild ${{parameters.sourceRoot}}\build.proj -p:configuration=Release -p:GenerateNuget=false -p:BuildTools=false'
37+
msBuildCommandline: 'msbuild ${{parameters.sourceRoot}}\build.proj -p:configuration=Release -p:GenerateNuget=false -p:BuildTools=false -p:SigningKeyPath=$(Agent.TempDirectory)\netfxKeypair.snk'
3838
- ${{ if eq(parameters.product, 'AKV') }}:
3939
- task: securedevelopmentteam.vss-secure-development-tools.build-task-roslynanalyzers.RoslynAnalyzers@3
4040
displayName: 'Guardian Dotnet Analyzers '

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: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,29 @@ parameters: # parameters are shown up in ADO UI in a build queue time
4242
- name: publishSymbols
4343
type: boolean
4444
default: false
45+
4546
- name: MDS_PackageRef_Version
4647
displayName: 'MDS package version of AKV Provider (build AKV)'
4748
type: string
4849
default: 5.1.5
50+
4951
- name: CurrentNetFxVersion
5052
displayName: 'Lowest supported .NET Framework version (MDS validation)'
5153
type: string
5254
default: 'net462'
5355

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+
5468
variables:
5569
- template: /eng/pipelines/libraries/variables.yml@self
5670
- name: packageFolderName
@@ -72,51 +86,52 @@ resources:
7286
ref: refs/heads/main
7387

7488
extends:
75-
template: v2/OneBranch.Official.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
89+
template: v2/OneBranch.${{parameters.oneBranchType }}.CrossPlat.yml@templates # https://aka.ms/obpipelines/templates
7690
parameters:
7791
featureFlags:
7892
WindowsHostVersion: 1ESWindows2022
7993
globalSdl: # https://aka.ms/obpipelines/sdl
8094
apiscan:
81-
enabled: true #temporary disabled
95+
enabled: ${{parameters.enableAllSdlTools }}
8296
softwareFolder: $(softwareFolder)
8397
symbolsFolder: $(symbolsFolder)
8498
softwarename: Microsoft.Data.SqlClient
8599
versionNumber: $(AssemblyFileVersion)
86100
tsa:
87-
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.
88102
codeql:
89103
compiled:
90104
enabled: false #[warning]Consider running CodeQL on the default branch only.
91105
sbom:
92-
enabled: true
106+
enabled: ${{parameters.enableAllSdlTools }}
93107
packageName: Microsoft.Data.SqlClient
94108
packageVersion: $(NugetPackageVersion)
95109
policheck:
96-
enabled: true
110+
enabled: ${{parameters.enableAllSdlTools }}
97111
break: true # always break the build on policheck issues. You can disable it by setting to 'false'
98112
exclusionsFile: $(REPOROOT)\.config\PolicheckExclusions.xml
99113
asyncSdl:
100114
enabled: false
101115
credscan:
102-
enabled: true
116+
enabled: ${{parameters.enableAllSdlTools }}
103117
suppressionsFile: $(REPOROOT)/.config/CredScanSuppressions.json
104118
binskim:
105-
enabled: true
119+
enabled: ${{parameters.enableAllSdlTools }}
106120
armory:
107-
enabled: true
121+
enabled: ${{parameters.enableAllSdlTools }}
108122
break: true
109123
eslint: # TypeScript and JavaScript
110124
enabled: false
111125
roslyn:
112-
enabled: true
126+
enabled: ${{parameters.enableAllSdlTools }}
113127
break: true
114128
publishLogs:
115-
enabled: true
129+
enabled: ${{parameters.enableAllSdlTools }}
116130
tsaOptionsPath: $(REPOROOT)\.config\tsaoptions.json
117131
disableLegacyManifest: true
118132
stages:
119133
- stage: buildAKV
134+
displayName: 'Build AKV Provider'
120135
jobs:
121136
- template: eng/pipelines/common/templates/jobs/build-signed-akv-package-job.yml@self
122137
parameters:
@@ -125,14 +140,16 @@ extends:
125140
publishSymbols: ${{ parameters['publishSymbols'] }}
126141

127142
- stage: buildMDS
143+
displayName: 'Build MDS'
128144
jobs:
129145
- template: eng/pipelines/common/templates/jobs/build-signed-package-job.yml@self
130146
parameters:
131147
symbolsFolder: $(symbolsFolder)
132148
softwareFolder: $(softwareFolder)
133149
publishSymbols: ${{ parameters['publishSymbols'] }}
134150

135-
- stage: package_validation
151+
- stage: mds_package_validation
152+
displayName: 'MDS Package Validation'
136153
dependsOn: buildMDS
137154
jobs:
138155
- template: eng/pipelines/common/templates/jobs/validate-signed-package-job.yml@self

eng/pipelines/libraries/mds-variables.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ variables:
1212
- name: Minor
1313
value: 2
1414
- name: Patch
15-
value: 1
15+
value: 2
1616
- name: Packaging.EnableSBOMSigning
1717
value: true
1818

src/Directory.Build.props

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
7979
<PublishRepositoryUrl>true</PublishRepositoryUrl>
8080
<EmbedUnTrackedSources>true</EmbedUnTrackedSources>
81+
<DisableSourceLinkTranslation Condition="'$(DisableSourceLinkTranslation)' == ''">false</DisableSourceLinkTranslation>
8182
</PropertyGroup>
8283
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
8384
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
@@ -96,4 +97,6 @@
9697
<!-- Provides Build properties -->
9798
<Import Project="$(ToolsDir)props\AssemblyInfo.props" />
9899
<Import Project="$(ToolsDir)props\AssemblyRef.props" />
100+
<Import Project="$(ToolsDir)targets\RepositoryInfo.targets" />
101+
99102
</Project>

0 commit comments

Comments
 (0)