diff --git a/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml b/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml new file mode 100644 index 0000000000..ef7dcaded7 --- /dev/null +++ b/eng/pipelines/sqlclient-pr-package-ref-pipeline.yml @@ -0,0 +1,125 @@ +################################################################################# +# 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 is used to trigger PR validation runs for dev/topic/feature +# branches in GitHub using the Package reference type. +# +# It maps to the "PR-SqlClient-Package" pipeline in Azure DevOps. + +# Set the pipeline run name to the day-of-year and the daily run counter. +name: $(DayOfYear)$(Rev:rr) + +# Trigger PR validation runs for all pushes to PRs that target the specified +# branches. +# +# https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devops&tabs=yaml#pr-triggers +# +pr: + branches: + include: + # GitHub repo branch targets that will trigger PR validation builds. + # TODO: Temporarily restricting to my ci-debug branches only. + - dev/paul/ci-debug-* + # - dev/* + # - feat/* + # - main + + paths: + include: + - .azuredevops + - .config + - src + - eng + - tools + - azurepipelines-coverage.yml + - build.proj + - NuGet.config + +# Pipeline parameters, visible in the Azure DevOps UI. +parameters: + +# The build configuration to use; defaults to Debug. +- name: buildConfiguration + displayName: Build Configuration + type: string + default: Debug + values: + - Debug + - Release + +- name: buildPlatforms + displayName: Build Platforms on Windows + type: object + default: [AnyCPU] + +- name: codeCovTargetFrameworks + displayName: Code Coverage Target Frameworks + type: object + default: [net462, net8.0] + +- name: debug + displayName: Enable debug output + type: boolean + default: false + +- name: enableStressTests + displayName: Enable Stress Tests + type: boolean + default: false + +- name: targetFrameworks + displayName: Target Frameworks on Windows + type: object + default: [net462, net8.0, net9.0] + +- name: targetFrameworksLinux + displayName: Target Frameworks on Non-Windows + type: object + default: [net8.0, net9.0] + +- name: testSets + displayName: Test Sets + type: object + default: [1, 2, 3] + +# The timeout, in minutes, for each test job. +- name: testJobTimeout + displayName: Test job timeout (in minutes) + type: string + default: Default + +- name: useManagedSNI + displayName: | + Use Managed/Native SNI on Windows, + values [false, true], [false] or [true] are allowed + type: object + default: [false, true] + +extends: + template: dotnet-sqlclient-ci-core.yml@self + parameters: + buildConfiguration: ${{ parameters.buildConfiguration }} + buildPlatforms: ${{ parameters.buildPlatforms }} + buildType: Package + codeCovTargetFrameworks: ${{ parameters.codeCovTargetFrameworks }} + debug: ${{ parameters.debug }} + enableStressTests: ${{ parameters.enableStressTests }} + targetFrameworks: ${{ parameters.targetFrameworks }} + targetFrameworksLinux: ${{ parameters.targetFrameworksLinux }} + testSets: ${{ parameters.testSets }} + # Populate the actual test job timeout numeric values if Default was + # specified. We choose different values depending on the build + # configuration. + ${{ if eq(parameters.testJobTimeout, 'Default') }}: + # If the build configuration is Debug, double the test job timeout value. + # Some of our tests currently take much longer to run in Debug mode. + ${{ if eq(parameters.buildConfiguration, 'Debug') }}: + testJobTimeout: 180 + ${{ else }}: + testJobTimeout: 90 + ${{ else }}: + testJobTimeout: ${{ parameters.testJobTimeout }} + useManagedSNI: ${{ parameters.useManagedSNI }} diff --git a/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml b/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml new file mode 100644 index 0000000000..3fde5cd0ca --- /dev/null +++ b/eng/pipelines/sqlclient-pr-project-ref-pipeline.yml @@ -0,0 +1,125 @@ +################################################################################# +# 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 is used to trigger PR validation runs for dev/topic/feature +# branches in GitHub using the Project reference type. +# +# It maps to the "PR-SqlClient-Project" pipeline in Azure DevOps. + +# Set the pipeline run name to the day-of-year and the daily run counter. +name: $(DayOfYear)$(Rev:rr) + +# Trigger PR validation runs for all pushes to PRs that target the specified +# branches. +# +# https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devops&tabs=yaml#pr-triggers +# +pr: + branches: + include: + # GitHub repo branch targets that will trigger PR validation builds. + # TODO: Temporarily restricting to my ci-debug branches only. + - dev/paul/ci-debug-* + # - dev/* + # - feat/* + # - main + + paths: + include: + - .azuredevops + - .config + - src + - eng + - tools + - azurepipelines-coverage.yml + - build.proj + - NuGet.config + +# Pipeline parameters, visible in the Azure DevOps UI. +parameters: + +# The build configuration to use; defaults to Debug. +- name: buildConfiguration + displayName: Build Configuration + type: string + default: Debug + values: + - Debug + - Release + +- name: buildPlatforms + displayName: Build Platforms on Windows + type: object + default: [AnyCPU] + +- name: codeCovTargetFrameworks + displayName: Code Coverage Target Frameworks + type: object + default: [net462, net8.0] + +- name: debug + displayName: Enable debug output + type: boolean + default: false + +- name: enableStressTests + displayName: Enable Stress Tests + type: boolean + default: false + +- name: targetFrameworks + displayName: Target Frameworks on Windows + type: object + default: [net462, net8.0, net9.0] + +- name: targetFrameworksLinux + displayName: Target Frameworks on Non-Windows + type: object + default: [net8.0, net9.0] + +- name: testSets + displayName: Test Sets + type: object + default: [1, 2, 3] + +# The timeout, in minutes, for each test job. +- name: testJobTimeout + displayName: Test job timeout (in minutes) + type: string + default: Default + +- name: useManagedSNI + displayName: | + Use Managed/Native SNI on Windows, + values [false, true], [false] or [true] are allowed + type: object + default: [false, true] + +extends: + template: dotnet-sqlclient-ci-core.yml@self + parameters: + buildConfiguration: ${{ parameters.buildConfiguration }} + buildPlatforms: ${{ parameters.buildPlatforms }} + buildType: Project + codeCovTargetFrameworks: ${{ parameters.codeCovTargetFrameworks }} + debug: ${{ parameters.debug }} + enableStressTests: ${{ parameters.enableStressTests }} + targetFrameworks: ${{ parameters.targetFrameworks }} + targetFrameworksLinux: ${{ parameters.targetFrameworksLinux }} + testSets: ${{ parameters.testSets }} + # Populate the actual test job timeout numeric values if Default was + # specified. We choose different values depending on the build + # configuration. + ${{ if eq(parameters.testJobTimeout, 'Default') }}: + # If the build configuration is Debug, double the test job timeout value. + # Some of our tests currently take much longer to run in Debug mode. + ${{ if eq(parameters.buildConfiguration, 'Debug') }}: + testJobTimeout: 180 + ${{ else }}: + testJobTimeout: 90 + ${{ else }}: + testJobTimeout: ${{ parameters.testJobTimeout }} + useManagedSNI: ${{ parameters.useManagedSNI }}