diff --git a/.gitignore b/.gitignore index 0d8dfed6d5..da143d57ac 100644 --- a/.gitignore +++ b/.gitignore @@ -376,3 +376,6 @@ MigrationBackup/ # MDS "Not Supported" GenAPI code **/notsupported/*.cs + +# C# language server cache +*.lscache diff --git a/Directory.Packages.props b/Directory.Packages.props index 62918f7d65..37b72ca205 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,4 +1,33 @@ + + + + + + + + + + + + true - - - - - - - - + + - + diff --git a/build.proj b/build.proj index 971cfb12fa..38f82aac7c 100644 --- a/build.proj +++ b/build.proj @@ -1,5 +1,6 @@ + @@ -208,12 +209,15 @@ ReferenceType Applies to: BuildSqlClient, BuildSqlClientUnix, BuildSqlClientWindows Description: Determines how to build SqlClient. If set to "Project", any cross-project - references (eg, Abstractions from SqlClient) will be made as project references. If - set to "Package", package references will be made instead. When running in - package mode, target versions can be specified via PackageVersion* build - parameters. If these are not provided, the central feed version will be used - instead (see Directory.Packages.props). When running in project mode, the - dependencies will be built automatically. + references (eg, Abstractions from SqlClient) will be made as project + references. If set to "Package", package references will be made instead. When + running in package mode, target versions can be specified via PackageVersion* + build parameters. If these are not provided, the central feed version will be + used instead (see Directory.Packages.props). In package mode, all Pack* + targets also mirror their .nupkg/.snupkg output into the local NuGet feed + directory (packages/) so that downstream builds in the same invocation can + restore them without a separate feed publish step. When running in project + mode, the dependencies will be built automatically. Applies to: TestSqlClientFunctional, TestSqlClientManual Description: Determines whether to test against a project reference or a package version @@ -227,6 +231,19 @@ -p:ReferenceType=Package + + false + + + + -p:TestSigningKeyPath="$(TestSigningKeyPath)" + + category!=failing&category!=flaky&category!=interactive + + $(TestFilters)&category!=signed --filter "$(TestFilters)" @@ -370,6 +410,7 @@ $(SqlClientSrcRoot)src/Microsoft.Data.SqlClient.csproj $(SqlClientSrcRoot)ref/Microsoft.Data.SqlClient.csproj $(SqlClientSrcRoot)notsupported/Microsoft.Data.SqlClient.csproj + $(SqlClientArtifactRoot)$(ReferenceType)-$(Configuration)/ $(SqlClientSrcRoot)tests/FunctionalTests/Microsoft.Data.SqlClient.FunctionalTests.csproj @@ -390,7 +431,10 @@ PlatformNotSupportedException. It generates the source for this using GenAPI which is built as the first step of this target. --> - + + PackLogging;PackAbstractions;PackSqlServer + + "$(DotnetPath)dotnet" build "$(GenApiProjectPath)" @@ -424,6 +468,7 @@ $(ReferenceTypeArgument) $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) @@ -434,7 +479,10 @@ - + + PackLogging;PackAbstractions;PackSqlServer + + "$(DotnetPath)dotnet" build $(SqlClientRefProjectPath) @@ -449,6 +497,7 @@ $(ReferenceTypeArgument) $(PackageVersionAbstractionsArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) @@ -459,7 +508,10 @@ - + + PackLogging;PackAbstractions;PackSqlServer + + "$(DotnetPath)dotnet" build $(SqlClientProjectPath) @@ -476,6 +528,7 @@ $(ReferenceTypeArgument) $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) @@ -486,7 +539,10 @@ - + + PackLogging;PackAbstractions;PackSqlServer + + "$(DotnetPath)dotnet" build $(SqlClientProjectPath) @@ -503,6 +559,7 @@ $(ReferenceTypeArgument) $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) @@ -545,15 +602,27 @@ $(ReferenceTypeArgument) $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) + $(PackageVersionSqlServerArgument) - -p:PackageOutputPath="$(SqlClientArtifactRoot)/$(ReferenceType)-$(Configuration)" + -p:PackageOutputPath="$(SqlClientPackageArtifactRoot)" $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) + + + + + + + @@ -582,6 +651,7 @@ $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) $(PackageVersionSqlClientArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) @@ -613,6 +683,7 @@ $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) $(PackageVersionSqlClientArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) @@ -624,10 +695,6 @@ - SqlClientUnit-$(OS) $(LogFilePrefix)-$(TestFramework) @@ -638,6 +705,10 @@ $(TestCodeCoverageArgument) $(TestFiltersArgument) $(TestFrameworkArgument) + $(ReferenceTypeArgument) + $(TestSigningKeyPathArgument) + $(PackageVersionSqlClientArgument) + $(PackageVersionSqlServerArgument) --results-directory "$(TestResultsFolderPath)" --logger:"trx;LogFilePrefix=$(LogFilePrefix)" @@ -650,14 +721,18 @@ - + $(RepoRoot)src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/ $(AkvProviderSrcRoot)src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj + $(RepoRoot)artifacts/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/$(Configuration)/ - - + + + PackSqlClient;PackLogging + + "$(DotnetPath)dotnet" build "$(AkvProviderProjectPath)" @@ -674,12 +749,13 @@ $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) $(PackageVersionSqlClientArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) - + @@ -687,7 +763,7 @@ - "$(DotnetPath)dotnet" pack "$(AkvProviderProjectpath)" + "$(DotnetPath)dotnet" pack "$(AkvProviderProjectPath)" -p:Configuration=$(Configuration) $(PackBuildArgument) $(SigningKeyPathArgument) @@ -702,25 +778,42 @@ $(PackageVersionAbstractionsArgument) $(PackageVersionLoggingArgument) $(PackageVersionSqlClientArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) - + + + + + + + + + $(RepoRoot)src/Microsoft.Data.SqlClient.Extensions/Abstractions/ $(AbstractionsSrcRoot)src/Abstractions.csproj $(AbstractionsSrcRoot)test/Abstractions.Test.csproj + $(RepoRoot)artifacts/Microsoft.Data.SqlClient.Extensions.Abstractions/$(Configuration)/ - + + PackLogging + + "$(DotnetPath)dotnet" build "$(AbstractionsProjectPath)" @@ -768,6 +861,17 @@ + + + + + + + @@ -775,7 +879,7 @@ AbstractionsTests-$(OS) $(LogFilePrefix)-$(TestFramework) @@ -804,10 +908,14 @@ $(RepoRoot)src/Microsoft.Data.SqlClient.Extensions/Azure/ $(AzureSrcRoot)src/Azure.csproj $(AzureSrcRoot)test/Azure.Test.csproj + $(RepoRoot)artifacts/Microsoft.Data.SqlClient.Extensions.Azure/$(Configuration)/ - + + PackLogging;PackAbstractions + + "$(DotnetPath)dotnet" build "$(AzureProjectPath)" @@ -855,6 +963,17 @@ + + + + + + + @@ -875,14 +994,16 @@ $(ReferenceTypeArgument) - + $(PackageVersionAbstractionsArgument) + $(PackageVersionLoggingArgument) $(PackageVersionSqlClientArgument) + $(PackageVersionSqlServerArgument) $([System.Text.RegularExpressions.Regex]::Replace($(DotnetCommand), "\s+", " ")) - + @@ -891,6 +1012,7 @@ $(RepoRoot)src/Microsoft.Data.SqlClient.Internal/Logging/src/ $(LoggingSrcRoot)Logging.csproj + $(RepoRoot)artifacts/Microsoft.Data.SqlClient.Internal.Logging/$(Configuration)/ @@ -934,6 +1056,17 @@ + + + + + + + @@ -941,6 +1074,7 @@ $(RepoRoot)src/Microsoft.SqlServer.Server/ $(SqlServerSrcRoot)Microsoft.SqlServer.Server.csproj + $(RepoRoot)artifacts/Microsoft.SqlServer.Server/$(Configuration)/ @@ -984,5 +1118,16 @@ + + + + + + + diff --git a/doc/Directory.Packages.props b/doc/Directory.Packages.props index 2ead6c1757..d47f7e01b9 100644 --- a/doc/Directory.Packages.props +++ b/doc/Directory.Packages.props @@ -6,5 +6,6 @@ + diff --git a/doc/samples/Microsoft.Data.SqlClient.Samples.csproj b/doc/samples/Microsoft.Data.SqlClient.Samples.csproj index c194fac4d0..44a153f6f2 100644 --- a/doc/samples/Microsoft.Data.SqlClient.Samples.csproj +++ b/doc/samples/Microsoft.Data.SqlClient.Samples.csproj @@ -10,14 +10,19 @@ False + - - - - + + + + + + + + diff --git a/eng/pipelines/ci/package/sqlclient-package.yml b/eng/pipelines/ci/package/sqlclient-package.yml new file mode 100644 index 0000000000..c907fd0219 --- /dev/null +++ b/eng/pipelines/ci/package/sqlclient-package.yml @@ -0,0 +1,169 @@ +################################################################################# +# Licensed to the .NET Foundation under one or more agreements. # +# The .NET Foundation licenses this file to you under the MIT license. # +# See the LICENSE file in the project root for more information. # +################################################################################# + +# This pipeline builds all packages using the build.proj Pack target with ReferenceType=Package, +# then publishes the resulting .nupkg and .snupkg files as a single pipeline artifact. +# +# It runs: +# - On pushes to GitHub main and ADO internal/main (batched) +# - Nightly at 00:00 UTC on both branches +# +# On internal/main the strong-name signing key is downloaded and used to sign assemblies during the +# build. +# +# GOTCHA: This pipeline definition is triggered by GitHub _and_ ADO CI. We distinguish the two via +# branch filters: +# +# - Only the GitHub repo has a 'main' branch. +# - Only the ADO repo has an 'internal/main' branch. + +name: $(DayOfYear)$(Rev:rr) + +# Do not trigger this pipeline for PRs. +pr: none + +# Trigger on pushes to main and internal/main, batching concurrent commits. +trigger: + batch: true + branches: + include: + - main + - internal/main + +# Nightly schedule at 00:00 UTC. +schedules: + - cron: '0 0 * * *' + displayName: Nightly Build + branches: + include: + - main + - internal/main + always: true + +# Pipeline parameters visible in the Azure DevOps UI. +parameters: + + # The agent image to use for the build. This must exist in both the ADO-1ES-Pool and + # ADO-CI-1ES-Pool agent pools. + - name: agentImage + displayName: Agent Image + type: string + default: ADO-UB24 + values: + - ADO-UB24 + - ADO-Win25 + + # The build configuration to use, either Debug or Release. + - name: buildConfiguration + displayName: Build Configuration + type: string + default: Release + values: + - Debug + - Release + + # True to enable debug steps and output. + - name: debug + displayName: Enable debug output + type: boolean + default: false + + # The verbosity level of dotnet CLI commands. + - name: dotnetVerbosity + displayName: dotnet CLI Verbosity + type: string + default: normal + values: + - quiet + - minimal + - normal + - detailed + - diagnostic + +variables: + # Whether this is an internal (ADO.Net project) or public (Public project) build. + - name: isInternalBuild + value: ${{ eq(variables['System.TeamProject'], 'ADO.Net') }} + + # Signing key argument passed to build.proj. On internal builds this references the secure file + # downloaded by DownloadSecureFile@1; on public builds it expands to empty. + - name: signingKeyArg + ${{ if eq(variables.isInternalBuild, true) }}: + value: '-p:SigningKeyPath="$(keyFile.secureFilePath)"' + ${{ else }}: + value: '' + +jobs: + - job: pack_all_packages + displayName: Pack All Packages + + pool: + ${{ if eq(variables.isInternalBuild, true) }}: + name: ADO-1ES-Pool + ${{ else }}: + name: ADO-CI-1ES-Pool + demands: + - ImageOverride -equals ${{ parameters.agentImage }} + + steps: + + # Emit environment variables if debug is enabled. + - ${{ if eq(parameters.debug, true) }}: + - pwsh: | + Get-ChildItem Env: | Sort-Object Name | Format-Table -AutoSize -Wrap + displayName: '[Debug] Print Environment Variables' + + # Install the .NET SDK from global.json. + - template: /eng/pipelines/steps/install-dotnet.yml@self + parameters: + debug: ${{ parameters.debug }} + + # Clean any pre-existing .nupkg / .snupkg files from the packages/ directory + # to ensure we only publish packages produced by this run. + - pwsh: | + Write-Host 'Cleaning packages/ directory...' + Remove-Item -Force "$(Build.SourcesDirectory)/packages/*.nupkg" -ErrorAction SilentlyContinue + Remove-Item -Force "$(Build.SourcesDirectory)/packages/*.snupkg" -ErrorAction SilentlyContinue + Write-Host 'Done.' + displayName: Clean packages/ directory + + # On internal builds, download the strong-name signing key. + - ${{ if eq(variables.isInternalBuild, true) }}: + - task: DownloadSecureFile@1 + displayName: Download Signing Key + inputs: + secureFile: netfxKeypair.snk + name: keyFile + + # Run the Pack target via build.proj. + - task: DotNetCoreCLI@2 + displayName: build.proj - Pack (ReferenceType=Package) + inputs: + command: build + projects: '$(Build.SourcesDirectory)/build.proj' + arguments: >- + -t:Pack + -p:Configuration=${{ parameters.buildConfiguration }} + -p:ReferenceType=Package + -p:BuildNumber="$(Build.BuildNumber)" + -p:BuildSuffix=ci + $(signingKeyArg) + --verbosity ${{ parameters.dotnetVerbosity }} + + # List produced packages for diagnostics. + - pwsh: | + Write-Host 'Packages produced:' + Get-ChildItem "$(Build.SourcesDirectory)/packages/*.nupkg" -ErrorAction SilentlyContinue | Format-Table Name, Length -AutoSize -Wrap + Get-ChildItem "$(Build.SourcesDirectory)/packages/*.snupkg" -ErrorAction SilentlyContinue | Format-Table Name, Length -AutoSize -Wrap + displayName: List produced packages + + # Publish all .nupkg and .snupkg files from packages/ as a pipeline artifact. + - task: PublishPipelineArtifact@1 + displayName: Publish NuGet Packages + inputs: + targetPath: '$(Build.SourcesDirectory)/packages' + artifactName: Packages + publishLocation: pipeline diff --git a/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml b/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml index 8d051e5167..e9c3ad7c64 100644 --- a/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml +++ b/eng/pipelines/common/templates/jobs/ci-build-nugets-job.yml @@ -77,6 +77,16 @@ parameters: - name: akvPackageVersion type: string + # The version of the SqlServer package to depend on when referenceType is 'Package'. + - name: sqlServerPackageVersion + type: string + default: $(sqlServerPackageVersion) + + # The name of the SqlServer pipeline artifact to download when referenceType is 'Package'. + - name: sqlServerArtifactsName + type: string + default: SqlServer.Artifacts + jobs: - job: build_mds_akv_packages_job displayName: Build MDS & AKV Packages @@ -115,6 +125,12 @@ jobs: artifactName: ${{ parameters.loggingArtifactsName }} targetPath: $(localFeedPath) + - task: DownloadPipelineArtifact@2 + displayName: Download SqlServer Package Artifacts + inputs: + artifactName: ${{ parameters.sqlServerArtifactsName }} + targetPath: $(localFeedPath) + # Install the .NET SDK. - template: /eng/pipelines/steps/install-dotnet.yml@self @@ -139,6 +155,7 @@ jobs: build: MDS abstractionsPackageVersion: ${{parameters.abstractionsPackageVersion}} loggingPackageVersion: ${{ parameters.loggingPackageVersion }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} - task: DotNetCoreCLI@2 displayName: 'Create MDS NuGet Package' @@ -153,6 +170,7 @@ jobs: -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} # PackSqlClient outputs to artifacts/Microsoft.Data.SqlClient/-/. # Downstream steps (local feed copy, AKV pack, artifact publish) all expect packages at @@ -184,6 +202,7 @@ jobs: loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} akvPackageVersion: ${{ parameters.akvPackageVersion }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} - task: DotNetCoreCLI@2 displayName: 'Create AKV Provider NuGet Package' @@ -199,6 +218,7 @@ jobs: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:PackageVersionAkvProvider=${{ parameters.akvPackageVersion }} - task: CopyFiles@2 diff --git a/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml b/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml index 5c593e11e3..8b79bf7274 100644 --- a/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml +++ b/eng/pipelines/common/templates/jobs/ci-run-tests-job.yml @@ -88,6 +88,16 @@ parameters: - name: mdsPackageVersion type: string + # The name of the SqlServer pipeline artifact to download when referenceType is 'Package'. + - name: sqlServerArtifactsName + type: string + default: SqlServer.Artifacts + + # The version of the SqlServer package to depend on when referenceType is 'Package'. + - name: sqlServerPackageVersion + type: string + default: $(sqlServerPackageVersion) + # TODO: What is this for? - name: netcoreVersionTestUtils type: string @@ -194,6 +204,12 @@ jobs: artifactName: ${{ parameters.mdsArtifactsName }} targetPath: $(Build.SourcesDirectory)/packages + - task: DownloadPipelineArtifact@2 + displayName: Download SqlServer Package Artifacts + inputs: + artifactName: ${{ parameters.sqlServerArtifactsName }} + targetPath: $(Build.SourcesDirectory)/packages + # Install the .NET SDK and Runtimes. - template: /eng/pipelines/steps/install-dotnet.yml@self parameters: @@ -364,6 +380,7 @@ jobs: abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }} loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} - ${{ if and(eq(parameters.enableX86Test, true), eq(parameters.operatingSystem, 'Windows')) }}: - template: /eng/pipelines/common/templates/steps/run-all-tests-step.yml@self @@ -379,6 +396,7 @@ jobs: abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }} loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} - template: /eng/pipelines/common/templates/steps/publish-test-results-step.yml@self parameters: diff --git a/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml b/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml index fd87d7d9ac..86ddc0ca45 100644 --- a/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml +++ b/eng/pipelines/common/templates/stages/ci-run-tests-stage.yml @@ -50,6 +50,16 @@ parameters: - name: mdsPackageVersion type: string + # The name of the SqlServer pipeline artifacts to download. + - name: sqlServerArtifactsName + type: string + default: SqlServer.Artifacts + + # The version of the SqlServer package to depend on when referenceType is 'Package'. + - name: sqlServerPackageVersion + type: string + default: $(sqlServerPackageVersion) + # Jobs to run after the test jobs complete, if any. - name: postTestJobs type: jobList @@ -114,6 +124,8 @@ stages: loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} prebuildSteps: ${{ parameters.prebuildSteps }} targetFramework: ${{ targetFramework }} netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }} @@ -150,6 +162,8 @@ stages: loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} prebuildSteps: ${{ parameters.prebuildSteps }} targetFramework: ${{ targetFramework }} netcoreVersionTestUtils: ${{config.value.netcoreVersionTestUtils }} diff --git a/eng/pipelines/common/templates/steps/ci-project-build-step.yml b/eng/pipelines/common/templates/steps/ci-project-build-step.yml index fe46ad66a2..e5fa6d4424 100644 --- a/eng/pipelines/common/templates/steps/ci-project-build-step.yml +++ b/eng/pipelines/common/templates/steps/ci-project-build-step.yml @@ -68,6 +68,11 @@ parameters: type: string default: $(akvPackageVersion) + # Necessary when referenceType is Package. Ignored when referenceType is Project. + - name: sqlServerPackageVersion + type: string + default: $(sqlServerPackageVersion) + steps: # Build MDS - ${{ if or(eq(parameters.build, 'MDS'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}: @@ -85,6 +90,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} # Build AKV Provider - ${{ if or(eq(parameters.build, 'AkvProvider'), eq(parameters.build, 'all'), eq(parameters.build, 'allNoDocs')) }}: @@ -103,3 +109,4 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} diff --git a/eng/pipelines/common/templates/steps/run-all-tests-step.yml b/eng/pipelines/common/templates/steps/run-all-tests-step.yml index cf3ce206a4..e41c7d22b2 100644 --- a/eng/pipelines/common/templates/steps/run-all-tests-step.yml +++ b/eng/pipelines/common/templates/steps/run-all-tests-step.yml @@ -22,6 +22,9 @@ parameters: - name: mdsPackageVersion type: string + - name: sqlServerPackageVersion + type: string + - name: platform type: string default: $(Platform) @@ -76,51 +79,62 @@ steps: condition: succeededOrFailed() - ${{if eq(parameters.operatingSystem, 'Windows')}}: - - ${{if eq(parameters.referenceType, 'Project')}}: - - task: DotNetCoreCLI@2 - displayName: 'Run Unit Tests ${{parameters.msbuildArchitecture }}' - condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) - inputs: - command: build - projects: build.proj - ${{ if eq(parameters.msbuildArchitecture, 'x64') }}: - arguments: >- - -t:TestSqlClientUnit - -p:TestFramework=${{ parameters.targetFramework }} - -p:Configuration=${{ parameters.buildConfiguration }} - -p:TestResultsFolderPath=TestResults - ${{ else }}: # x86 - arguments: >- - -t:TestSqlClientUnit - -p:TestFramework=${{ parameters.targetFramework }} - -p:Configuration=${{ parameters.buildConfiguration }} - -p:DotnetPath=${{ parameters.dotnetx86RootPath }} - -p:TestResultsFolderPath=TestResults + - task: DotNetCoreCLI@2 + displayName: 'Run Unit Tests ${{parameters.msbuildArchitecture }}' + condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) + inputs: + command: build + projects: build.proj + ${{ if eq(parameters.msbuildArchitecture, 'x64') }}: + arguments: >- + -t:TestSqlClientUnit + -p:TestFramework=${{ parameters.targetFramework }} + -p:ReferenceType=${{ parameters.referenceType }} + -p:Configuration=${{ parameters.buildConfiguration }} + -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} + -p:TestResultsFolderPath=TestResults + ${{ else }}: # x86 + arguments: >- + -t:TestSqlClientUnit + -p:TestFramework=${{ parameters.targetFramework }} + -p:ReferenceType=${{ parameters.referenceType }} + -p:Configuration=${{ parameters.buildConfiguration }} + -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} + -p:DotnetPath=${{ parameters.dotnetx86RootPath }} + -p:TestResultsFolderPath=TestResults - - task: DotNetCoreCLI@2 - displayName: 'Run Flaky Unit Tests ${{parameters.msbuildArchitecture }}' - condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) - inputs: - command: build - projects: build.proj - ${{ if eq(parameters.msbuildArchitecture, 'x64') }}: - arguments: >- - -t:TestSqlClientUnit - -p:TestFramework=${{ parameters.targetFramework }} - -p:Configuration=${{ parameters.buildConfiguration }} - -p:TestFilters="category=flaky" - -p:TestResultsFolderPath=TestResults - -p:TestCodeCoverage=false - ${{ else }}: # x86 - arguments: >- - -t:TestSqlClientUnit - -p:TestFramework=${{ parameters.targetFramework }} - -p:Configuration=${{ parameters.buildConfiguration }} - -p:DotnetPath=${{ parameters.dotnetx86RootPath }} - -p:TestFilters="category=flaky" - -p:TestResultsFolderPath=TestResults - -p:TestCodeCoverage=false - continueOnError: true + - task: DotNetCoreCLI@2 + displayName: 'Run Flaky Unit Tests ${{parameters.msbuildArchitecture }}' + condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) + inputs: + command: build + projects: build.proj + ${{ if eq(parameters.msbuildArchitecture, 'x64') }}: + arguments: >- + -t:TestSqlClientUnit + -p:TestFramework=${{ parameters.targetFramework }} + -p:ReferenceType=${{ parameters.referenceType }} + -p:Configuration=${{ parameters.buildConfiguration }} + -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} + -p:TestFilters="category=flaky" + -p:TestResultsFolderPath=TestResults + -p:TestCodeCoverage=false + ${{ else }}: # x86 + arguments: >- + -t:TestSqlClientUnit + -p:TestFramework=${{ parameters.targetFramework }} + -p:ReferenceType=${{ parameters.referenceType }} + -p:Configuration=${{ parameters.buildConfiguration }} + -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} + -p:DotnetPath=${{ parameters.dotnetx86RootPath }} + -p:TestFilters="category=flaky" + -p:TestResultsFolderPath=TestResults + -p:TestCodeCoverage=false + continueOnError: true - task: DotNetCoreCLI@2 displayName: 'Run Functional Tests ${{parameters.msbuildArchitecture }}' @@ -137,6 +151,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestResultsFolderPath=TestResults ${{ else }}: # x86 arguments: >- @@ -147,6 +162,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:DotnetPath=${{ parameters.dotnetx86RootPath }} -p:TestResultsFolderPath=TestResults @@ -165,6 +181,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestFilters="category=flaky" -p:TestResultsFolderPath=TestResults -p:TestCodeCoverage=false @@ -177,6 +194,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:DotnetPath=${{ parameters.dotnetx86RootPath }} -p:TestFilters="category=flaky" -p:TestResultsFolderPath=TestResults @@ -199,6 +217,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestResultsFolderPath=TestResults ${{ else }}: # x86 arguments: >- @@ -210,6 +229,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:DotnetPath=${{ parameters.dotnetx86RootPath }} -p:TestResultsFolderPath=TestResults retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }} @@ -230,6 +250,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestFilters="category=flaky" -p:TestResultsFolderPath=TestResults -p:TestCodeCoverage=false @@ -243,6 +264,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:DotnetPath=${{ parameters.dotnetx86RootPath }} -p:TestFilters="category=flaky" -p:TestResultsFolderPath=TestResults @@ -250,33 +272,38 @@ steps: continueOnError: true - ${{ else }}: # Linux or macOS - - ${{if eq(parameters.referenceType, 'Project')}}: - - task: DotNetCoreCLI@2 - displayName: 'Run Unit Tests' - condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) - inputs: - command: build - projects: build.proj - arguments: >- - -t:TestSqlClientUnit - -p:TestFramework=${{ parameters.targetFramework }} - -p:Configuration=${{ parameters.buildConfiguration }} - -p:TestResultsFolderPath=TestResults + - task: DotNetCoreCLI@2 + displayName: 'Run Unit Tests' + condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) + inputs: + command: build + projects: build.proj + arguments: >- + -t:TestSqlClientUnit + -p:TestFramework=${{ parameters.targetFramework }} + -p:ReferenceType=${{ parameters.referenceType }} + -p:Configuration=${{ parameters.buildConfiguration }} + -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} + -p:TestResultsFolderPath=TestResults - - task: DotNetCoreCLI@2 - displayName: 'Run Flaky Unit Tests' - condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) - inputs: - command: build - projects: build.proj - arguments: >- - -t:TestSqlClientUnit - -p:TestFramework=${{ parameters.targetFramework }} - -p:Configuration=${{ parameters.buildConfiguration }} - -p:TestFilters="category=flaky" - -p:TestResultsFolderPath=TestResults - -p:TestCodeCoverage=false - continueOnError: true + - task: DotNetCoreCLI@2 + displayName: 'Run Flaky Unit Tests' + condition: and(eq(variables['setupSucceeded'], 'true'), succeededOrFailed()) + inputs: + command: build + projects: build.proj + arguments: >- + -t:TestSqlClientUnit + -p:TestFramework=${{ parameters.targetFramework }} + -p:ReferenceType=${{ parameters.referenceType }} + -p:Configuration=${{ parameters.buildConfiguration }} + -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} + -p:TestFilters="category=flaky" + -p:TestResultsFolderPath=TestResults + -p:TestCodeCoverage=false + continueOnError: true - task: DotNetCoreCLI@2 displayName: 'Run Functional Tests' @@ -292,6 +319,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestResultsFolderPath=TestResults - task: DotNetCoreCLI@2 @@ -308,6 +336,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestFilters="category=flaky" -p:TestResultsFolderPath=TestResults -p:TestCodeCoverage=false @@ -327,6 +356,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestResultsFolderPath=TestResults retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }} @@ -345,6 +375,7 @@ steps: -p:PackageVersionAbstractions=${{ parameters.abstractionsPackageVersion }} -p:PackageVersionLogging=${{ parameters.loggingPackageVersion }} -p:PackageVersionSqlClient=${{ parameters.mdsPackageVersion }} + -p:PackageVersionSqlServer=${{ parameters.sqlServerPackageVersion }} -p:TestFilters="category=flaky" -p:TestResultsFolderPath=TestResults -p:TestCodeCoverage=false diff --git a/eng/pipelines/dotnet-sqlclient-ci-core.yml b/eng/pipelines/dotnet-sqlclient-ci-core.yml index c8181aff5a..f5f2269494 100644 --- a/eng/pipelines/dotnet-sqlclient-ci-core.yml +++ b/eng/pipelines/dotnet-sqlclient-ci-core.yml @@ -185,14 +185,17 @@ stages: mdsPackageVersion: $(mdsPackageVersion) akvPackageVersion: $(akvPackageVersion) referenceType: ${{ parameters.referenceType }} + sqlServerArtifactsName: $(sqlServerArtifactsName) + sqlServerPackageVersion: $(sqlServerPackageVersion) SNIVersion: ${{ parameters.SNIVersion }} SNIValidationFeed: ${{ parameters.SNIValidationFeed }} - # When building SqlClient via packages, we must depend on the Abstractions and Logging - # packages. + # When building SqlClient via packages, we must depend on the Abstractions, Logging, + # and SqlServer packages. ${{ if eq(parameters.referenceType, 'Package') }}: additionalDependsOn: - build_abstractions_package_stage - build_logging_package_stage + - build_sqlserver_package_stage # Build the Azure package, and publish it to the pipeline artifacts under the # given artifact name. @@ -206,16 +209,21 @@ stages: buildConfiguration: ${{ parameters.buildConfiguration }} debug: ${{ parameters.debug }} # When building via packages, we must depend on the Abstractions, Logging, - # and MDS packages. + # SqlServer, and MDS packages. ${{ if eq(parameters.referenceType, 'Package') }}: additionalDependsOn: - build_abstractions_package_stage - build_logging_package_stage + - build_sqlserver_package_stage - build_sqlclient_package_stage dotnetVerbosity: ${{ parameters.dotnetVerbosity }} + loggingArtifactsName: $(loggingArtifactsName) + loggingPackageVersion: $(loggingPackageVersion) mdsArtifactsName: $(mdsArtifactsName) mdsPackageVersion: $(mdsPackageVersion) referenceType: ${{ parameters.referenceType }} + sqlServerArtifactsName: $(sqlServerArtifactsName) + sqlServerPackageVersion: $(sqlServerPackageVersion) # Verify that all NuGet packages comply with Microsoft metadata requirements. # This runs on a Windows agent after all packages have been built and @@ -240,14 +248,17 @@ stages: loggingPackageVersion: $(loggingPackageVersion) mdsArtifactsName: $(mdsArtifactsName) mdsPackageVersion: $(mdsPackageVersion) + sqlServerArtifactsName: $(sqlServerArtifactsName) + sqlServerPackageVersion: $(sqlServerPackageVersion) testJobTimeout: ${{ parameters.testJobTimeout }} # When testing MDS via packages, we must depend on the Abstractions, - # Logging, MDS, and Azure packages. + # Logging, SqlServer, MDS, and Azure packages. ${{ if eq(parameters.referenceType, 'Package') }}: additionalDependsOn: - build_abstractions_package_stage - build_logging_package_stage + - build_sqlserver_package_stage - build_sqlclient_package_stage - build_azure_package_stage diff --git a/eng/pipelines/jobs/test-azure-package-ci-job.yml b/eng/pipelines/jobs/test-azure-package-ci-job.yml index cd9b87e103..9c70433e33 100644 --- a/eng/pipelines/jobs/test-azure-package-ci-job.yml +++ b/eng/pipelines/jobs/test-azure-package-ci-job.yml @@ -26,6 +26,13 @@ parameters: type: string default: Logging.Artifacts + # The Logging package version to depend on. + # + # This is used when the referenceType is 'Package'. + - name: loggingPackageVersion + type: string + default: '' + # The Abstractions package verion to depend on. # # This is used when the referenceType is 'Package'. @@ -79,6 +86,21 @@ parameters: - name: mdsPackageVersion type: string + # The name of the SqlServer pipeline artifacts to download. + # + # This is used when the referenceType is 'Package'. MDS depends on + # SqlServer.Server, so the package must be available for transitive restore. + - name: sqlServerArtifactsName + type: string + default: SqlServer.Artifacts + + # The SqlServer package version to depend on. + # + # This is used when the referenceType is 'Package'. + - name: sqlServerPackageVersion + type: string + default: '' + # The list of .NET Framework runtimes to test against. - name: netFrameworkRuntimes type: object @@ -153,7 +175,9 @@ jobs: --verbosity ${{ parameters.dotnetVerbosity }} -p:ReferenceType=${{ parameters.referenceType }} -p:AbstractionsPackageVersion=${{ parameters.abstractionsPackageVersion }} + -p:LoggingPackageVersion=${{ parameters.loggingPackageVersion }} -p:SqlClientPackageVersion=${{ parameters.mdsPackageVersion }} + -p:SqlServerPackageVersion=${{ parameters.sqlServerPackageVersion }} # Explicitly unset the $PLATFORM environment variable that is set by the # 'ADO Build properties' Library in the ADO SqlClientDrivers public @@ -208,6 +232,16 @@ jobs: artifactName: ${{ parameters.mdsArtifactsName }} targetPath: $(Build.SourcesDirectory)/packages + # Download the SqlServer package artifacts into packages/. + # + # MDS depends on SqlServer.Server, so the package must be available for + # transitive restore. + - task: DownloadPipelineArtifact@2 + displayName: Download SqlServer Package Artifacts + inputs: + artifactName: ${{ parameters.sqlServerArtifactsName }} + targetPath: $(Build.SourcesDirectory)/packages + # Install the .NET SDK and Runtimes. - template: /eng/pipelines/steps/install-dotnet.yml@self parameters: diff --git a/eng/pipelines/libraries/ci-build-variables.yml b/eng/pipelines/libraries/ci-build-variables.yml index 142e5e21fe..438b011fab 100644 --- a/eng/pipelines/libraries/ci-build-variables.yml +++ b/eng/pipelines/libraries/ci-build-variables.yml @@ -24,35 +24,35 @@ variables: # Abstractions library assembly file version - name: abstractionsAssemblyFileVersion - value: 1.0.0.$(assemblyBuildNumber) + value: 1.1.0.$(assemblyBuildNumber) # Abstractions library NuGet package version - name: abstractionsPackageVersion - value: 1.0.0-ci$(Build.BuildNumber) + value: 1.1.0-preview1ci$(Build.BuildNumber) # AKV provider assembly file version - name: akvAssemblyFileVersion - value: 7.0.0.$(assemblyBuildNumber) + value: 7.1.0.$(assemblyBuildNumber) # AKV provider NuGet package version - name: akvPackageVersion - value: 7.0.0-ci$(Build.BuildNumber) + value: 7.1.0-preview1ci$(Build.BuildNumber) # Azure library assembly file version - name: azureAssemblyFileVersion - value: 1.0.0.$(assemblyBuildNumber) + value: 1.1.0.$(assemblyBuildNumber) # Azure library NuGet package version - name: azurePackageVersion - value: 1.0.0-ci$(Build.BuildNumber) + value: 1.1.0-preview1ci$(Build.BuildNumber) # Logging library assembly file version - name: loggingAssemblyFileVersion - value: 1.0.0.$(assemblyBuildNumber) + value: 1.1.0.$(assemblyBuildNumber) # Logging library NuGet package version - name: loggingPackageVersion - value: 1.0.0-ci$(Build.BuildNumber) + value: 1.1.0-preview1ci$(Build.BuildNumber) # MDS library NuGet package version # NOTE: This differs from the other structures! MdsVersions.props will deconstruct a provided @@ -66,7 +66,7 @@ variables: # assembly build number, so this must remain a three-part SemVer base with a prerelease # suffix, not a four-part numeric version. - name: sqlServerPackageVersion - value: 1.0.0-ci$(AssemblyBuildNumber) + value: 1.1.0-preview1ci$(AssemblyBuildNumber) # Local NuGet feed directory where downloaded pipeline artifacts are placed. # NuGet.config references this as a local package source for restore. diff --git a/eng/pipelines/onebranch/stages/build-stages.yml b/eng/pipelines/onebranch/stages/build-stages.yml index 096da7e949..62f26b7aa3 100644 --- a/eng/pipelines/onebranch/stages/build-stages.yml +++ b/eng/pipelines/onebranch/stages/build-stages.yml @@ -222,6 +222,9 @@ stages: - artifactName: '${{ parameters.loggingArtifactsName }}' shortName: 'Logging' version: '${{ parameters.loggingPackageVersion }}' + - artifactName: '${{ parameters.sqlServerArtifactsName }}' + shortName: 'SqlServer' + version: '${{ parameters.sqlServerPackageVersion }}' fileVersion: '${{ parameters.sqlClientFileVersion }}' packageFullName: 'Microsoft.Data.SqlClient' packageShortName: 'SqlClient' @@ -284,6 +287,9 @@ stages: - artifactName: '${{ parameters.sqlClientArtifactsName }}' shortName: 'SqlClient' version: '${{ parameters.sqlClientPackageVersion }}' + - artifactName: '${{ parameters.sqlServerArtifactsName }}' + shortName: 'SqlServer' + version: '${{ parameters.sqlServerPackageVersion }}' fileVersion: '${{ parameters.akvProviderFileVersion }}' packageFullName: 'Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider' packageShortName: 'AkvProvider' diff --git a/eng/pipelines/onebranch/steps/build-buildproj-step.yml b/eng/pipelines/onebranch/steps/build-buildproj-step.yml index 9e02243537..080896ee10 100644 --- a/eng/pipelines/onebranch/steps/build-buildproj-step.yml +++ b/eng/pipelines/onebranch/steps/build-buildproj-step.yml @@ -56,6 +56,7 @@ steps: -t:Build${{ parameters.packageShortName }} -p:Configuration=${{ parameters.buildConfiguration }} -p:ReferenceType=Package + -p:SkipDependencyPack=true -p:SigningKeyPath="$(keyFile.secureFilePath)" -p:BuildNumber="$(Build.BuildNumber)" -p:PackageVersion${{ parameters.packageShortName }}="${{ parameters.packageVersion }}" diff --git a/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml b/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml index 1f7c22a554..89177f1d88 100644 --- a/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml +++ b/eng/pipelines/onebranch/steps/roslyn-analyzers-buildproj-step.yml @@ -50,6 +50,7 @@ steps: -t:Build${{ parameters.packageShortName }} -p:Configuration=Release -p:ReferenceType=Package + -p:SkipDependencyPack=true -p:BuildNumber="$(Build.BuildNumber)" -p:PackageVersion${{ parameters.packageShortName }}="${{ parameters.packageVersion }}" ${{ parameters.dependencyArguments }} diff --git a/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml b/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml index be7e2e9e3b..70a37e0fa7 100644 --- a/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml +++ b/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml @@ -51,6 +51,7 @@ pr: - global.json - NuGet.config exclude: + - eng/pipelines/ci/* - eng/pipelines/kerberos/* - eng/pipelines/onebranch/* - eng/pipelines/stress/* diff --git a/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml b/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml index 30950ec21c..f777626c90 100644 --- a/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml +++ b/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml @@ -51,6 +51,7 @@ pr: - global.json - NuGet.config exclude: + - eng/pipelines/ci/* - eng/pipelines/kerberos/* - eng/pipelines/onebranch/* - eng/pipelines/stress/* diff --git a/eng/pipelines/stages/build-azure-package-ci-stage.yml b/eng/pipelines/stages/build-azure-package-ci-stage.yml index 3b57ce8c3b..1da56a18ef 100644 --- a/eng/pipelines/stages/build-azure-package-ci-stage.yml +++ b/eng/pipelines/stages/build-azure-package-ci-stage.yml @@ -101,6 +101,20 @@ parameters: - detailed - diagnostic + # The name of the Logging pipeline artifacts to download. + # + # This is used when the referenceType is 'Package'. + - name: loggingArtifactsName + type: string + default: Logging.Artifacts + + # The Logging package version to depend on. + # + # This is used when the referenceType is 'Package'. + - name: loggingPackageVersion + type: string + default: '' + # The name of the MDS pipeline artifacts to download. # # This is used when the referenceType is 'Package'. @@ -114,6 +128,21 @@ parameters: - name: mdsPackageVersion type: string + # The name of the SqlServer pipeline artifacts to download. + # + # This is used when the referenceType is 'Package'. MDS depends on + # SqlServer.Server, so the package must be available for transitive restore. + - name: sqlServerArtifactsName + type: string + default: SqlServer.Artifacts + + # The SqlServer package version to depend on. + # + # This is used when the referenceType is 'Package'. + - name: sqlServerPackageVersion + type: string + default: '' + # The C# project reference type to use when building and packing the packages. - name: referenceType type: string @@ -152,8 +181,12 @@ stages: displayNamePrefix: Linux dotnetVerbosity: ${{ parameters.dotnetVerbosity }} jobNameSuffix: linux + loggingArtifactsName: ${{ parameters.loggingArtifactsName }} + loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} netFrameworkRuntimes: [] netRuntimes: [net8.0, net9.0, net10.0] poolName: ${{ parameters.azurePoolName }} @@ -170,8 +203,12 @@ stages: displayNamePrefix: Linux Integration dotnetVerbosity: ${{ parameters.dotnetVerbosity }} jobNameSuffix: linux_integration + loggingArtifactsName: ${{ parameters.loggingArtifactsName }} + loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} netFrameworkRuntimes: [] netRuntimes: [net8.0, net9.0, net10.0] poolName: ${{ parameters.adoPoolName }} @@ -197,8 +234,12 @@ stages: displayNamePrefix: Win dotnetVerbosity: ${{ parameters.dotnetVerbosity }} jobNameSuffix: windows + loggingArtifactsName: ${{ parameters.loggingArtifactsName }} + loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} netFrameworkRuntimes: [net462] netRuntimes: [net8.0, net9.0, net10.0] poolName: ${{ parameters.azurePoolName }} @@ -215,8 +256,12 @@ stages: displayNamePrefix: Win Integration dotnetVerbosity: ${{ parameters.dotnetVerbosity }} jobNameSuffix: windows_integration + loggingArtifactsName: ${{ parameters.loggingArtifactsName }} + loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} netFrameworkRuntimes: [net462] netRuntimes: [net8.0, net9.0, net10.0] poolName: ${{ parameters.adoPoolName }} @@ -251,8 +296,12 @@ stages: displayNamePrefix: macOS dotnetVerbosity: ${{ parameters.dotnetVerbosity }} jobNameSuffix: macos + loggingArtifactsName: ${{ parameters.loggingArtifactsName }} + loggingPackageVersion: ${{ parameters.loggingPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} mdsPackageVersion: ${{ parameters.mdsPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} netFrameworkRuntimes: [] netRuntimes: [net8.0, net9.0, net10.0] poolName: ${{ parameters.azurePoolName }} diff --git a/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml b/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml index 57343a0006..858f1c8500 100644 --- a/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml +++ b/eng/pipelines/stages/build-sqlclient-package-ci-stage.yml @@ -56,6 +56,16 @@ parameters: - name: akvPackageVersion type: string + # The name of the SqlServer pipeline artifacts to download. + - name: sqlServerArtifactsName + type: string + default: SqlServer.Artifacts + + # The SqlServer package version. + - name: sqlServerPackageVersion + type: string + default: $(sqlServerPackageVersion) + # The C# project reference type to use when building and packing the packages. - name: referenceType type: string @@ -97,6 +107,8 @@ stages: mdsPackageVersion: ${{ parameters.mdsPackageVersion }} mdsArtifactsName: ${{ parameters.mdsArtifactsName }} akvPackageVersion: ${{ parameters.akvPackageVersion }} + sqlServerArtifactsName: ${{ parameters.sqlServerArtifactsName }} + sqlServerPackageVersion: ${{ parameters.sqlServerPackageVersion }} ${{ if ne(parameters.SNIVersion, '') }}: prebuildSteps: - template: /eng/pipelines/common/templates/steps/override-sni-version.yml@self diff --git a/src/Directory.Build.props b/src/Directory.Build.props index e760ebe9f3..f8ac03e168 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -35,7 +35,11 @@ - + + $(AkvProviderAssemblyVersion) $(AkvProviderFileVersion) diff --git a/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props b/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props index 31f85b7da4..dd9ddc03d5 100644 --- a/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props +++ b/src/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider/src/Versions.props @@ -13,13 +13,23 @@ NuGet package. It should be in the form: (Major).(Minor).(Patch)[-(Suffix)(BuildNumber)] --> + + + true + + - 7.0.0 + 7.1.0-preview1 diff --git a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj index 45acd55488..0a9d29aa1e 100644 --- a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj +++ b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Abstractions.csproj @@ -22,7 +22,10 @@ - + + $(AbstractionsAssemblyVersion) $(AbstractionsFileVersion) @@ -71,9 +74,9 @@ + Condition="'$(ReferenceType)' != 'Package'" /> + Condition="'$(ReferenceType)' == 'Package'" /> diff --git a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props index 14daeda570..cc6d4ca14a 100644 --- a/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props +++ b/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props @@ -13,6 +13,16 @@ naming. It must be in the form: (Major).0.0.0 --> + + + true + + - 1.0.0 + 1.1.0-preview1 diff --git a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj index 423c55387f..dddf5673f9 100644 --- a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj +++ b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Azure.csproj @@ -22,7 +22,10 @@ - + + $(AzureAssemblyVersion) $(AzureFileVersion) diff --git a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props index 3c4bb9dfac..636face4e6 100644 --- a/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props +++ b/src/Microsoft.Data.SqlClient.Extensions/Azure/src/Versions.props @@ -13,13 +13,23 @@ form: (Major).(Minor).(Patch).(BuildNumber) --> + + + true + + - 1.0.0 + 1.1.0-preview1 diff --git a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj index f8461d8b92..d1c3e0fc5c 100644 --- a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj +++ b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj @@ -24,7 +24,10 @@ - + + $(LoggingAssemblyVersion) $(LoggingFileVersion) diff --git a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props index eeb25b93ca..9d031d21d0 100644 --- a/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props +++ b/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props @@ -13,6 +13,16 @@ naming. It must be in the form: (Major).0.0.0 --> + + + true + + - 1.0.0 + 1.1.0-preview1 diff --git a/src/Microsoft.Data.SqlClient/Versions.props b/src/Microsoft.Data.SqlClient/Versions.props index 2a915285b0..712263b73e 100644 --- a/src/Microsoft.Data.SqlClient/Versions.props +++ b/src/Microsoft.Data.SqlClient/Versions.props @@ -13,6 +13,16 @@ package. It should be in the form: (Major).(Minor).(Patch)[-(Suffix)(BuildNumber)] --> + + + true + + - + + $(SqlClientAssemblyVersion) $(SqlClientFileVersion) @@ -112,9 +115,9 @@ + + + + + @@ -156,7 +166,6 @@ - @@ -170,7 +179,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj index 0b6282965d..fe871099e6 100644 --- a/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/ref/Microsoft.Data.SqlClient.csproj @@ -11,7 +11,10 @@ - + + $(SqlClientAssemblyVersion) $(SqlClientFileVersion) @@ -79,6 +82,13 @@ + + + + + @@ -112,7 +122,6 @@ - @@ -124,7 +133,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj b/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj index cd7fdb4b79..24c6a548f9 100644 --- a/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj +++ b/src/Microsoft.Data.SqlClient/src/Microsoft.Data.SqlClient.csproj @@ -50,7 +50,10 @@ - + + $(SqlClientAssemblyVersion) $(SqlClientFileVersion) @@ -59,13 +62,26 @@ - + + <_Parameter1>UnitTests + + + + <_Parameter1>UnitTests, PublicKey=00240000048000001401000006020000002400005253413100080000010001003D19684676DA365F331D00CE7BD4B8EF03E74102F39A5681B40622703D68F0298ECACECC723D3FFC1EA9365AF4958578550EA1EBEEC084B0B3757F3762449F5365E872802A4B548056760764FAD062BFEE81ED26183109AD46810E7E6E965419D0A10473680144D20C1BFE1027A5F586CA987523C06F5C126C44EA7D4F51EB023867A9F294315F95775ACEFD2D678186919458DFCCB4DE2E9F53AEFC766C7CBCEC474ED21C1616E5A9414D366D91D121C39F5FE6641295ADC058EF3FB10593BCDE2E82D9F217C2634909EEF496CD53AE78ABBEA572B871D72EBFC5378205950ABA97C7CCC2B9635D96933D5F9C9624D71FF53EE2094CF3A6BD38534D66E414B7 + + + $(RepoRoot)artifacts/ @@ -87,6 +103,7 @@ $(RepoRoot)/src/Microsoft.Data.SqlClient.Internal/Logging/src/Logging.csproj $(RepoRoot)/src/Microsoft.Data.SqlClient.Extensions/Abstractions/src/Versions.props $(RepoRoot)/src/Microsoft.Data.SqlClient.Internal/Logging/src/Versions.props + $(RepoRoot)/src/Microsoft.SqlServer.Server/Versions.props @@ -129,13 +146,15 @@ + + <_AbstractionsPackageVersionTrimmed>$([System.String]::Copy('$(AbstractionsPackageVersion)').Trim()) <_LoggingPackageVersionTrimmed>$([System.String]::Copy('$(LoggingPackageVersion)').Trim()) + <_SqlServerPackageVersionTrimmed>$([System.String]::Copy('$(SqlServerPackageVersion)').Trim()) - + - <_SqlClientPackNuspecExpandedText>$([System.IO.File]::ReadAllText('$(SqlClientPackNuspecTemplatePath)').Replace('$AbstractionsPackageVersion$','$(AbstractionsPackageVersion)').Replace('$LoggingPackageVersion$','$(LoggingPackageVersion)')) + <_SqlClientPackNuspecExpandedText>$([System.IO.File]::ReadAllText('$(SqlClientPackNuspecTemplatePath)').Replace('$AbstractionsPackageVersion$','$(AbstractionsPackageVersion)').Replace('$LoggingPackageVersion$','$(LoggingPackageVersion)').Replace('$SqlServerPackageVersion$','$(SqlServerPackageVersion)')) - + @@ -73,7 +73,7 @@ - + @@ -85,7 +85,7 @@ - + diff --git a/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj b/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj index 3f014f9fbe..548dd641f6 100644 --- a/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj +++ b/src/Microsoft.Data.SqlClient/tests/Common/Microsoft.Data.SqlClient.TestCommon.csproj @@ -3,6 +3,7 @@ Microsoft.Data.SqlClient.TestCommon Microsoft.Data.SqlClient.TestCommon enable + enable + + + true + $(TestSigningKeyPath) + + net8.0;net9.0;net10.0 @@ -25,7 +33,10 @@ - + + diff --git a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs index 0576a64eba..b051f2cc26 100644 --- a/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs +++ b/src/Microsoft.Data.SqlClient/tests/FunctionalTests/SqlDataRecordTest.cs @@ -333,6 +333,9 @@ public void GetChar_ThrowsNotSupported() } [Theory] + #if NETFRAMEWORK + [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server + #endif [MemberData( nameof(GetUdtTypeTestData.Get), MemberType = typeof(GetUdtTypeTestData), @@ -350,7 +353,6 @@ public void GetUdt_ReturnsValue(Type udtType, object value, string serverTypeNam Assert.Equal(value.ToString(), record.GetValue(0).ToString()); } - [Theory] [MemberData( nameof(GetXXXBadTypeTestData.Get), diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj index 71d0f0b0cb..1145fa4790 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTests.csproj @@ -328,6 +328,13 @@ + + + + + @@ -367,7 +374,6 @@ - @@ -394,7 +400,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs index 3719a09328..b590a7c451 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/SqlServerTypesTest.cs @@ -35,6 +35,9 @@ public static class SqlServerTypesTest // Synapse: Parse error at line: 1, column: 48: Incorrect syntax near 'hierarchyid'. [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + #if NETFRAMEWORK + [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server + #endif public static void GetSchemaTableTest() { string db = new SqlConnectionStringBuilder(DataTestUtility.TCPConnectionString).InitialCatalog; @@ -61,6 +64,9 @@ public static void GetSchemaTableTest() // Synapse: Parse error at line: 1, column: 48: Incorrect syntax near 'hierarchyid'. [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + #if NETFRAMEWORK + [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server + #endif public static void GetValueTest() { using (SqlConnection conn = new SqlConnection(DataTestUtility.TCPConnectionString)) @@ -219,6 +225,9 @@ void ActAndAssert(int index, string expectedHexString) // Synapse: Parse error at line: 1, column: 41: Incorrect syntax near 'hierarchyid'. [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + #if NETFRAMEWORK + [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server + #endif public static void TestUdtSchemaMetadata() { using (SqlConnection connection = new SqlConnection(DataTestUtility.TCPConnectionString)) @@ -373,6 +382,9 @@ private static string GetUdtName(Type udtClrType) // Synapse: Parse error at line: 1, column: 8: Incorrect syntax near 'geometry'. [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + #if NETFRAMEWORK + [Trait("Category", "signed")] // Requires strong-name signed Microsoft.SqlServer.Server + #endif public static void TestSqlServerTypesInsertAndRead() { string tableName = DataTestUtility.GetLongName("Type"); diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj index d481e4cca6..c98b9b3fae 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Address/Address.csproj @@ -1,4 +1,4 @@ - + Address Address @@ -16,6 +16,9 @@ - + + diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj index 6066c1c751..db53171c6e 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Circle/Circle.csproj @@ -1,4 +1,4 @@ - + Circle Circle @@ -16,6 +16,9 @@ - + + diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj index 67f26c9ae9..e115355bfe 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Shapes/Shapes.csproj @@ -16,6 +16,9 @@ - + + diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj index aa1dd19dd2..02e0193f82 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/UdtTest/UDTs/Utf8String/Utf8String.csproj @@ -16,6 +16,9 @@ - + + diff --git a/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj b/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj index 8c59d27572..b9f460d9a7 100644 --- a/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj +++ b/src/Microsoft.Data.SqlClient/tests/UnitTests/Microsoft.Data.SqlClient.UnitTests.csproj @@ -36,10 +36,50 @@ + + + + true + $(TestSigningKeyPath) + + - + + + + + + + <_SqlClientRid Condition="'$(OS)' != 'Windows_NT'">unix + <_SqlClientRid Condition="'$(OS)' == 'Windows_NT'">win + + <_SqlClientPackageTfm Condition="'$(TargetFramework)' == 'net8.0'">net8.0 + <_SqlClientPackageTfm Condition="'$(TargetFramework)' == 'net462'">net462 + <_SqlClientPackageTfm Condition="'$(_SqlClientPackageTfm)' == ''">net9.0 + + + + + + + @@ -48,7 +88,6 @@ - @@ -65,7 +104,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj b/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj index 083cca8a61..c50a251e4f 100644 --- a/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj +++ b/src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.TestUtilities/Microsoft.Data.SqlClient.TestUtilities.csproj @@ -2,6 +2,14 @@ netstandard2.0 + + + + + true + $(TestSigningKeyPath) + + diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj index 2e1a1b5c81..c9dce97ddb 100644 --- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj +++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.EndPoint/TDS.EndPoint.csproj @@ -3,6 +3,15 @@ Microsoft.SqlServer.TDS.EndPoint Microsoft.SqlServer.TDS.EndPoint netstandard2.0 + + + + + true + $(TestSigningKeyPath) + + + false diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj index 57d3dfadd2..b6f33b0977 100644 --- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj +++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS.Servers/TDS.Servers.csproj @@ -4,6 +4,12 @@ Microsoft.SqlServer.TDS.Servers netstandard2.0 + + + + true + $(TestSigningKeyPath) + diff --git a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj index a4da7c8b92..39d5aae2de 100644 --- a/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj +++ b/src/Microsoft.Data.SqlClient/tests/tools/TDS/TDS/TDS.csproj @@ -4,4 +4,10 @@ Microsoft.SqlServer.TDS netstandard2.0 + + + + true + $(TestSigningKeyPath) + diff --git a/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj b/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj index ead90d9eac..a995fa13b9 100644 --- a/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj +++ b/src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj @@ -6,7 +6,10 @@ - + + $(SqlServerAssemblyVersion) $(SqlServerFileVersion) diff --git a/src/Microsoft.SqlServer.Server/Versions.props b/src/Microsoft.SqlServer.Server/Versions.props index 0a342f9426..3615bd95a8 100644 --- a/src/Microsoft.SqlServer.Server/Versions.props +++ b/src/Microsoft.SqlServer.Server/Versions.props @@ -13,6 +13,16 @@ naming. It must be in the form: (Major).0.0.0 --> + + + true + + - 1.0.0 + 1.1.0-preview1