Repository navigation
Pipeline-script Pester suites are never run in CI #4603
Description
Activity
- addedArea\EngineeringUse this for issues that are targeted for changes in the 'eng' folder or build systems.Use this for issues that are targeted for changes in the 'eng' folder or build systems.
on Aug 26, 2026 🔍 Triage Summary
Check Result Issue type Task Environment N/A — this is an engineering/infrastructure task, not a bug report Area Area\EngineeringDuplicates None found Regression Not applicable Analysis
This task tracks three versioning-script follow-ups deferred from PR #4602 to keep that PR scoped to the 7.1.0-preview3 release. The three items are: (1) deciding whether the
addRevision: trueversion shape should be retained or removed and how test-feed republishing would work without it; (2) wiring the Pester versioning test suite undereng/pipelines/onebranch/scripts/tests/into CI and pinning Pester to 5.x to avoid a 6.x incompatibility (pester/Pester#2669); and (3) cleaning up the unconditional-p:BuildNumberargument passed toGetVersionstargets even whenAddRevisionisfalse. None of these items block the current release; they are clean-up/improvement tasks of moderate priority (P2).Next Steps
- Item 1:
@paulmedynskiand@cheenamalhotrato reach agreement on whetheraddRevisionis needed long-term and document the alternative for test-feed republishing of unchanged base versions. - Item 2: Wire
eng/pipelines/onebranch/scripts/tests/into a CI stage (orbuild.projtarget), pin Pester to5.xin the test bootstrap, and ensure the suite runs underpwsh(not Windows PowerShell 5.1) to support the three-argumentJoin-Pathform. - Item 3: Guard the
-p:BuildNumber=$wrappedRevisionargument with a condition so it is only passed whenAddRevisionis$true, eliminating the misleading call signature.
Note: This triage summary is auto-generated by an AI agent. The analysis and suggestions above have not been verified by a human maintainer. Please treat as preliminary guidance only.
Generated by SqlClient Issue Auto-Triage for issue #4603 · 29.7 AIC · ⌖ 8.99 AIC · ⊞ 8.6K · ◷
- Item 1:
- changed the title
[-]Versioning script follow-ups deferred from #4602[/-][+]Pipeline-script Pester suites are never run in CI[/+]on Sep 22, 2026 priyankatiwari08 commented
on Sep 22, 2026 ContributorAuthorMore actionsStatus check against
main@671d0103b. Two of the three original items are no longer actionable, so I've rescoped this issue to the one that remains.1. Decide whether the
addRevision: trueversion shape should exist — resolved#4652 removed the mode entirely: "Remove the addRevision mode entirely. Package versions now have a single shape driven by the pipeline build number, and the 16-bit revision wrapping, the four-part package base handling, and the Build.BuildId plumbing are gone."
There is no
addRevisionreference left anywhere undereng/— the pipeline parameters insqlclient-official.ymlandsqlclient-non-official.ymlare gone along with the script support. The test-feed republishing question that would have followed a removal decision is answered by the same PR: package version stamping moved intoVersions.props, where any version carrying a prerelease tag is stamped with the build number, so repeated publishes of an unchanged base still produce distinct versions.3.
Get-CanonicalVersionspasses a build number that cannot apply — mootThe concern was that
-p:BuildNumberwas passed unconditionally even whenAddRevisionwas$false, making the call read as though the revision were in play. WithaddRevisiongone there is only one path, andBuildNumberis always meaningful on it.compute-versions.ps1still passes-p:BuildNumber=$BuildNumber(line 141), but that is now correct rather than misleading.2. Nothing in CI runs the versioning Pester tests — still open
Unchanged, and slightly broader than originally described:
Invoke-Pesterappears in no pipeline YAML, no GitHub workflow, and nobuild.projtarget. The only references in the repo are the suites' own READMEs.- The gap is not versioning-specific.
eng/pipelines/scripts/tests/(Open-LocalizationPr,Install-DockerCli.macos) is equally unexecuted, so I've folded it into the scope. - Both READMEs still say
Install-Module Pester -MinimumVersion 5.0, which resolves to 6.x today and fails at discovery (Pester breaks on functions with unknown label pester/Pester#2669). compute-versions.Tests.ps1:7still uses the three-argumentJoin-Pathform, so the suite needspwshrather than Windows PowerShell 5.1.
Retitled to match the remaining scope.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsBacklog
Originally split out of #4602 as a bucket of three versioning-script follow-ups. Two of those three were resolved by #4652, so this issue is now rescoped to the one remaining item: nothing in CI runs the pipeline-script Pester suites.
See the status comment below for what closed out and why.
Nothing in CI runs the pipeline-script Pester tests
Neither PowerShell test suite is executed anywhere.
Invoke-Pesterappears in no pipeline YAML, no GitHub workflow, and nobuild.projtarget — the only references in the repo are the suites' own READMEs.Affected suites:
eng/pipelines/onebranch/scripts/tests/compute-versions,publish-symbols,validate-localization,validate-packages,verify-assembly-signatures,verify-package-signatureseng/pipelines/scripts/tests/Open-LocalizationPr,Install-DockerCli.macosThree things need doing together:
Wire the suites into CI. A dedicated stage or job that runs both directories on PR validation.
Pin Pester to 5.x. Both READMEs say
Install-Module Pester -MinimumVersion 5.0, which now resolves to 6.x. Pester 6 fails these files at discovery withInvalidOperationException: A 'break' or 'continue' statement with a label that does not match any enclosing loop escaped from your code(Pester breaks on functions with unknown label pester/Pester#2669). Use-MaximumVersion 5.99or an explicit-RequiredVersion, and update both READMEs to match.Run under
pwsh, not Windows PowerShell 5.1.compute-versions.Tests.ps1uses the three-argument form ofJoin-Path(line 7), which is PowerShell 6+ only.