Skip to content

Update pipelines for the 7.1 staging branch - #4650

Draft
paulmedynski wants to merge 2 commits into
release/7.1-stagingfrom
dev/paul/release/7.1/pipelines
Draft

Update pipelines for the 7.1 staging branch#4650
paulmedynski wants to merge 2 commits into
release/7.1-stagingfrom
dev/paul/release/7.1/pipelines

Conversation

@paulmedynski

@paulmedynski paulmedynski commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Description

Update Azure DevOps pipeline branch specifications for the 7.1 staging branch:

  • Restrict PR, CI, schedule, and pipeline-completion triggers to release/7.1-staging and internal/release/7.1-staging.
  • Disable the legacy package-reference PR and GitHub CI triggers due to limited resources, matching Disable legacy package-reference pipelines on main #4647; their branch entries remain commented for easy re-enablement, while scheduled and ADO internal CI runs remain active.
  • Stagger 7.1 schedules between 09:00 and 23:00 UTC to avoid trigger-time overlap with main and existing release branches.
  • Update GitHub Sync source and target defaults and sanitize / as - in its generated sync branch name.
  • Refresh nearby pipeline guidance and comments for the 7.1 schedule and trigger configuration.

There are no public API or product behavior changes.

Testing

I will be manually running the affected pipelines in the Public and ADO.Net projects, and confirming their calculated triggers. I will list successful runs here as they complete.

Copilot AI balanced review requested due to automatic review settings September 4, 2026 19:28
@github-project-automation github-project-automation Bot moved this to To triage in SqlClient Board Sep 4, 2026
@paulmedynski paulmedynski added this to the 7.1.0 milestone Sep 4, 2026
@paulmedynski paulmedynski moved this from To triage to In progress in SqlClient Board Sep 4, 2026
@paulmedynski paulmedynski added the Area\Engineering Use this for issues that are targeted for changes in the 'eng' folder or build systems. label Sep 4, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Several comments and guidance entries still incorrectly reference non-staging branches.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Retargets Azure DevOps pipelines to the 7.1 staging branches and staggers scheduled runs.

Changes:

  • Restricts PR, CI, scheduled, and completion triggers to staging branches.
  • Updates schedules and GitHub synchronization defaults.
  • Sanitizes generated synchronization branch names.
File summaries
File Description
eng/pipelines/sqlclient-pr-project-ref-pipeline.yml Retargets project-reference PR validation.
eng/pipelines/sqlclient-pr-package-ref-pipeline.yml Retargets package-reference PR validation.
eng/pipelines/pr/sqlclient-pr-pipeline.yml Retargets consolidated PR validation.
eng/pipelines/perf/sqlclient-perf-pr-pipeline.yml Changes the performance baseline branch.
eng/pipelines/onebranch/sqlclient-official.yml Retargets and reschedules official builds.
eng/pipelines/github-sync-pipeline.yml Retargets synchronization and sanitizes branch names.
eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml Retargets and reschedules project-reference CI.
eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml Retargets and reschedules package-reference CI.
eng/pipelines/ci/stress/sqlclient-ci-stress-pipeline.yml Retargets stress-test completion triggers.
eng/pipelines/ci/package/sqlclient-ci-package-pipeline.yml Splits and reschedules package builds.
eng/pipelines/ci/managed-instance/sqlclient-ci-managed-instance-pipeline.yml Retargets managed-instance completion triggers.
eng/pipelines/ci/kerberos/sqlclient-ci-kerberos-pipeline.yml Retargets Kerberos completion triggers.
.github/instructions/onebranch-pipeline-design.instructions.md Updates OneBranch schedule guidance.
.github/instructions/ado-pipelines.instructions.md Updates CI and PR pipeline guidance.
Review details

Suppressed comments (3)

eng/pipelines/github-sync-pipeline.yml:62

  • This operator-visible job name says it syncs the non-staging branches, while the parameter defaults target the staging branches. Include -staging in both names to identify the run accurately.
    displayName: Sync GitHub release/7.1 to ADO internal/release/7.1

eng/pipelines/github-sync-pipeline.yml:74

  • This step label still identifies the source as release/7.1, although the default source is release/7.1-staging. Update the label so pipeline logs identify the branch being synchronized.
        displayName: Sync GitHub release/7.1 to ADO

eng/pipelines/perf/sqlclient-perf-pr-pipeline.yml:67

  • Changing the default baseline to release/7.1-staging leaves the file header claiming that the default is main (line 13). Update that header description so operators know which source is actually used for an unmodified run.
    default: release/7.1-staging
  • Files reviewed: 14/14 changed files
  • Comments generated: 9
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.


PR pipelines:
- Trigger on PRs to `dev/*`, `feat/*`, `main`; exclude `eng/pipelines/onebranch/*` paths
- Trigger on PRs targeting `release/7.1`; path filters vary by pipeline
## Pipeline Variants

- `sqlclient-official.yml` — Official pipeline; uses `OneBranch.Official.CrossPlat.yml`; runs on a daily schedule at 04:30 UTC on `internal/main`, with no activity-based trigger (`pr: none`, `trigger: none`)
- `sqlclient-official.yml` — Official pipeline; uses `OneBranch.Official.CrossPlat.yml`; runs on a daily schedule at 23:00 UTC on `internal/release/7.1`, with no activity-based trigger (`pr: none`, `trigger: none`)
Comment on lines +10 to +14
# It runs daily at 13:00 UTC on GitHub dotnet/SqlClient release/7.1 and at 21:00 UTC on ADO.Net
# dotnet-sqlclient internal/release/7.1.
#
# On internal/main the strong-name signing key is downloaded and used to sign assemblies during the
# build.
# On internal/release/7.1 the strong-name signing key is downloaded and used to sign assemblies
# during the build.
Comment on lines +17 to +20
# - Commits to the GitHub release/7.1 branch
# - Commits to the ADO internal/release/7.1 branch
# - Daily at 11:00 UTC on GitHub release/7.1
# - Daily at 19:00 UTC on ADO internal/release/7.1
Comment on lines +17 to +20
# - Commits to the GitHub release/7.1 branch
# - Commits to the ADO internal/release/7.1 branch
# - Daily at 09:00 UTC on GitHub release/7.1
# - Daily at 17:00 UTC on ADO internal/release/7.1
Comment on lines +7 to +11
# This pipeline synchronizes the GitHub dotnet/SqlClient repository's release/7.1
# branch into the internal ADO repository by:
#
# 1. Fetching the latest commits from GitHub main.
# 2. Pushing them to a dev/autosync/github-main branch in ADO.
# 3. Creating (or updating) a pull request targeting internal/main.
# 1. Fetching the latest commits from GitHub release/7.1.
# 2. Pushing them to a dev/autosync/github-release-7.1 branch in ADO.
#
# It is triggered by pushes to PRs that target the main, dev/*, feat/*, and release/* branches in
# GitHub. The dev/* pattern includes dev/automation/* branches created by AI agents.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.
# It is triggered by pushes to PRs that target the main, dev/*, feat/*, and
# release/* branches in GitHub. The dev/* pattern includes dev/automation/*
# branches created by AI agents.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.
# It is triggered by pushes to PRs that target the main, dev/*, feat/*, and
# release/* branches in GitHub. The dev/* pattern includes dev/automation/*
# branches created by AI agents.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.
Copilot AI review requested due to automatic review settings September 4, 2026 19:35
@paulmedynski
paulmedynski force-pushed the dev/paul/release/7.1/pipelines branch from 4d58b51 to dee7f9b Compare September 4, 2026 19:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Pipeline documentation remains inconsistent, and the disabled package-reference PR trigger conflicts with the stated scope.

Review details

Suppressed comments (12)

Previously missed (1) — in code that hasn't changed since the last review.

eng/pipelines/dotnet-sqlclient-ci-package-reference-pipeline.yml:20

  • The configured ADO trigger and both schedules use staging branches, so this summary currently names branches the pipeline no longer targets.

.github/instructions/ado-pipelines.instructions.md:73

  • This guidance names the final release branch and also says all PR pipelines trigger, but the configured branch is release/7.1-staging and the package-reference PR pipeline is disabled. Distinguish the enabled staging PR pipelines from that exception.
- Trigger on PRs targeting `release/7.1`; path filters vary by pipeline

.github/instructions/ado-pipelines.instructions.md:79

  • The CI filters now target the staging branches, not release/7.1 and internal/release/7.1. Keep this repository guidance aligned with the exact configured branch names.
- Trigger on push to `release/7.1` (GitHub) and `internal/release/7.1` (ADO) with `batch: true`

.github/instructions/onebranch-pipeline-design.instructions.md:12

  • The official pipeline is scheduled on internal/release/7.1-staging, so this design guide currently points maintainers to the wrong branch.
- `sqlclient-official.yml` — Official pipeline; uses `OneBranch.Official.CrossPlat.yml`; runs on a daily schedule at 23:00 UTC on `internal/release/7.1`, with no activity-based trigger (`pr: none`, `trigger: none`)

eng/pipelines/ci/package/sqlclient-ci-package-pipeline.yml:14

  • The schedules below run on the staging branches, while this operational header says they run on the final release branches. Use the staging names here as well, including for the signing behavior.
# It runs daily at 13:00 UTC on GitHub dotnet/SqlClient release/7.1 and at 21:00 UTC on ADO.Net
# dotnet-sqlclient internal/release/7.1.
#
# On internal/release/7.1 the strong-name signing key is downloaded and used to sign assemblies
# during the build.

eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml:20

  • All four trigger/schedule entries below use the staging branch names, so this summary currently documents different branches from those the pipeline runs on.
#   - Commits to the GitHub release/7.1 branch
#   - Commits to the ADO internal/release/7.1 branch
#   - Daily at 09:00 UTC on GitHub release/7.1
#   - Daily at 17:00 UTC on ADO internal/release/7.1

eng/pipelines/github-sync-pipeline.yml:12

  • These steps document the non-staging source, sync, and target branches, while the defaults below use release/7.1-staging and generate github-release-7.1-staging. Correct the header so operators do not infer that this pipeline synchronizes the final release branches.
#   1. Fetching the latest commits from GitHub release/7.1.
#   2. Pushing them to a dev/autosync/github-release-7.1 branch in ADO.
#   3. Creating (or updating) a pull request targeting internal/release/7.1.

eng/pipelines/perf/sqlclient-perf-pr-pipeline.yml:67

  • Changing this default leaves the performance pipeline guide inaccurate: eng/pipelines/perf/README.md:110,120,440 still tells users the default is main. Update those references to release/7.1-staging so queue-time guidance matches the pipeline.
    default: release/7.1-staging

eng/pipelines/pr/sqlclient-pr-pipeline.yml:12

  • This header says PRs target release/7.1, but the actual filter is release/7.1-staging; use the exact branch name to avoid misleading maintainers.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.

eng/pipelines/sqlclient-pr-package-ref-pipeline.yml:27

  • The PR description says PR triggers are being restricted to release/7.1-staging, but this removes package-reference PR validation altogether. Either retain a branch-filtered PR trigger for the staging branch or explicitly document this pipeline as an exception; the current behavior and stated scope disagree.
# branches.

eng/pipelines/sqlclient-pr-package-ref-pipeline.yml:14

  • This comment names release/7.1, but this PR is configuring the release/7.1-staging branch. Use the exact branch name so the documented exception is not mistaken for the eventual release branch.
# PR validation is disabled on the release/7.1 branch due to limited resources.

eng/pipelines/sqlclient-pr-project-ref-pipeline.yml:14

  • This header says PRs target release/7.1, but the actual filter is release/7.1-staging; use the exact branch name to avoid misleading maintainers.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.
  • Files reviewed: 14/14 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

Copilot AI review requested due to automatic review settings September 4, 2026 19:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Multiple pipeline comments and guidance files still document incorrect branches or trigger behavior.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (8)

.github/instructions/ado-pipelines.instructions.md:73

  • This generalization is inaccurate after this PR: the project-reference PR pipelines target release/7.1-staging, while the package-reference PR pipeline is disabled. Document both behaviors so future pipeline changes follow the actual trigger configuration.
- Trigger on PRs targeting `release/7.1`; path filters vary by pipeline

.github/instructions/ado-pipelines.instructions.md:79

  • This statement says all CI pipelines push-trigger from both repositories, but the package-reference GitHub trigger is intentionally disabled, and all active filters use the staging branches. Distinguish the project- and package-reference behavior here.
- Trigger on push to `release/7.1` (GitHub) and `internal/release/7.1` (ADO) with `batch: true`

.github/instructions/onebranch-pipeline-design.instructions.md:12

  • The official schedule was moved to internal/release/7.1-staging, so this repository guidance now documents the wrong branch.
- `sqlclient-official.yml` — Official pipeline; uses `OneBranch.Official.CrossPlat.yml`; runs on a daily schedule at 23:00 UTC on `internal/release/7.1`, with no activity-based trigger (`pr: none`, `trigger: none`)

eng/pipelines/ci/package/sqlclient-ci-package-pipeline.yml:14

  • This revised overview says the schedules and signing path use release/7.1, while the actual schedule filters target release/7.1-staging. Because both branches may exist, the documentation should use the exact staging names.
# It runs daily at 13:00 UTC on GitHub dotnet/SqlClient release/7.1 and at 21:00 UTC on ADO.Net
# dotnet-sqlclient internal/release/7.1.
#
# On internal/release/7.1 the strong-name signing key is downloaded and used to sign assemblies
# during the build.

eng/pipelines/dotnet-sqlclient-ci-project-reference-pipeline.yml:20

  • This header repeatedly identifies release/7.1 and internal/release/7.1, but every updated trigger and schedule below targets the distinct *-staging branches. Please update all branch references in this header block to include -staging.
#   - Commits to the GitHub release/7.1 branch
#   - Commits to the ADO internal/release/7.1 branch
#   - Daily at 09:00 UTC on GitHub release/7.1
#   - Daily at 17:00 UTC on ADO internal/release/7.1

eng/pipelines/github-sync-pipeline.yml:12

  • These updated steps describe syncing release/7.1 into internal/release/7.1, but the schedule and parameter defaults use the distinct *-staging branches. The generated sync branch is likewise dev/autosync/github-release-7.1-staging; document those exact names to avoid misleading operators.
#   1. Fetching the latest commits from GitHub release/7.1.
#   2. Pushing them to a dev/autosync/github-release-7.1 branch in ADO.
#   3. Creating (or updating) a pull request targeting internal/release/7.1.

eng/pipelines/pr/sqlclient-pr-pipeline.yml:12

  • The trigger targets release/7.1-staging, not release/7.1; the header should identify the exact branch whose PRs start this pipeline.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.

eng/pipelines/sqlclient-pr-project-ref-pipeline.yml:14

  • This description names release/7.1, but the trigger now targets release/7.1-staging. Keeping the exact branch name here avoids misleading maintainers about which PRs are validated.
# It is triggered by pushes to PRs that target the release/7.1 branch in GitHub.
  • Files reviewed: 14/14 changed files
  • Comments generated: 3
  • Review effort level: Balanced

Comment on lines +17 to +20
# - GitHub CI push trigger disabled due to limited resources
# - Commits to the ADO internal/release/7.1 branch
# - Daily at 11:00 UTC on GitHub release/7.1
# - Daily at 19:00 UTC on ADO internal/release/7.1
displayName: Baseline Source Ref (branch)
type: string
default: main
default: release/7.1-staging
# It is triggered by pushes to PRs that target the main, dev/*, feat/*, and
# release/* branches in GitHub. The dev/* pattern includes dev/automation/*
# branches created by AI agents.
# PR validation is disabled on the release/7.1 branch due to limited resources.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area\Engineering Use this for issues that are targeted for changes in the 'eng' folder or build systems.

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

2 participants