Skip to content

Pipeline-script Pester suites are never run in CI #4603

Description

@priyankatiwari08

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-Pester appears in no pipeline YAML, no GitHub workflow, and no build.proj target — the only references in the repo are the suites' own READMEs.

Affected suites:

Suite Test files
eng/pipelines/onebranch/scripts/tests/ compute-versions, publish-symbols, validate-localization, validate-packages, verify-assembly-signatures, verify-package-signatures
eng/pipelines/scripts/tests/ Open-LocalizationPr, Install-DockerCli.macos

Three things need doing together:

  1. Wire the suites into CI. A dedicated stage or job that runs both directories on PR validation.

  2. 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 with InvalidOperationException: 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.99 or an explicit -RequiredVersion, and update both READMEs to match.

  3. Run under pwsh, not Windows PowerShell 5.1. compute-versions.Tests.ps1 uses the three-argument form of Join-Path (line 7), which is PowerShell 6+ only.

Activity

  1. added
    Area\EngineeringUse this for issues that are targeted for changes in the 'eng' folder or build systems.
    on Aug 26, 2026
  2. github-actions commented on Aug 26, 2026

    @github-actions

    🔍 Triage Summary

    Check Result
    Issue type Task
    Environment N/A — this is an engineering/infrastructure task, not a bug report
    Area Area\Engineering
    Duplicates 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: true version shape should be retained or removed and how test-feed republishing would work without it; (2) wiring the Pester versioning test suite under eng/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:BuildNumber argument passed to GetVersions targets even when AddRevision is false. None of these items block the current release; they are clean-up/improvement tasks of moderate priority (P2).

    Next Steps

    • Item 1: @paulmedynski and @cheenamalhotra to reach agreement on whether addRevision is 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 (or build.proj target), pin Pester to 5.x in the test bootstrap, and ensure the suite runs under pwsh (not Windows PowerShell 5.1) to support the three-argument Join-Path form.
    • Item 3: Guard the -p:BuildNumber=$wrappedRevision argument with a condition so it is only passed when AddRevision is $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 · ◷

  3. changed the title [-]Versioning script follow-ups deferred from #4602[/-] [+]Pipeline-script Pester suites are never run in CI[/+] on Sep 22, 2026
  4. priyankatiwari08 commented on Sep 22, 2026

    @priyankatiwari08
    ContributorAuthor

    Status 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: true version 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 addRevision reference left anywhere under eng/ — the pipeline parameters in sqlclient-official.yml and sqlclient-non-official.yml are 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 into Versions.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-CanonicalVersions passes a build number that cannot apply — moot

    The concern was that -p:BuildNumber was passed unconditionally even when AddRevision was $false, making the call read as though the revision were in play. With addRevision gone there is only one path, and BuildNumber is always meaningful on it. compute-versions.ps1 still 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-Pester appears in no pipeline YAML, no GitHub workflow, and no build.proj target. 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:7 still uses the three-argument Join-Path form, so the suite needs pwsh rather than Windows PowerShell 5.1.

    Retitled to match the remaining scope.

  5. moved this from To triage to Backlog in SqlClient Boardon Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions