Update pipelines for the 7.1 staging branch - #4650
Conversation
There was a problem hiding this comment.
🟡 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
-stagingin 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 isrelease/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-stagingleaves the file header claiming that the default ismain(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`) |
| # 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. |
| # - 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 |
| # - 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 |
| # 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. |
4d58b51 to
dee7f9b
Compare
There was a problem hiding this comment.
🔵 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-stagingand 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.1andinternal/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-stagingand generategithub-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,440still tells users the default ismain. Update those references torelease/7.1-stagingso 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 isrelease/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 therelease/7.1-stagingbranch. 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 isrelease/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
There was a problem hiding this comment.
🟡 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 targetrelease/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.1andinternal/release/7.1, but every updated trigger and schedule below targets the distinct*-stagingbranches. 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.1intointernal/release/7.1, but the schedule and parameter defaults use the distinct*-stagingbranches. The generated sync branch is likewisedev/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, notrelease/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 targetsrelease/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
| # - 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. |
Description
Update Azure DevOps pipeline branch specifications for the 7.1 staging branch:
release/7.1-stagingandinternal/release/7.1-staging.mainand existing release branches./as-in its generated sync branch name.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.