Deduplicate pipeline dependency installation tasks - #28232
Alex Villarreal (alexvy86) wants to merge 2 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Hi! Thank you for opening this PR. Want me to review it? Based on the diff (219 lines, 25 files), I've queued these reviewers:
How this works
|
Fleet Review — CleanNo issues found across the reviewer fleet for this run. |
There was a problem hiding this comment.
🔵 Needs a closer look
The build-tools installation template is not included in the explicit path filters for its consumers.
Pull request overview
This pull request centralizes Azure Pipelines dependency installation with frozen lockfiles, retries, root-only support, and clearer logging.
Changes:
- Migrates inline installs to
include-install.yml. - Preserves setup ordering and separates installation from build/link operations.
- Updates path filters and documents shared template usage.
- Adds the build-tools template to its consumers’ path filters.
File summaries
| File | Summary |
|---|---|
tools/pipelines/templates/upload-telemetry/include-stage-upload-telemetry.yml |
Uses shared installation for the ff_pipeline_host checkout. |
tools/pipelines/templates/include-test-real-service.yml |
Migrates multi-repository dependency installation. |
tools/pipelines/templates/include-policy-check.yml |
Uses root-only shared installation. |
tools/pipelines/templates/include-install.yml |
Adds shared frozen-lockfile installation with retries and options. |
tools/pipelines/templates/include-install-build-tools.yml |
Separates installation from build/link operations. |
tools/pipelines/templates/build-npm-package.yml |
Configures full-workspace installation. |
tools/pipelines/templates/build-npm-client-package.yml |
Configures full-workspace installation. |
tools/pipelines/templates/build-docker-service.yml |
Uses shared conditional installation. |
tools/pipelines/server-routerlicious.yml |
Updates pipeline installation usage and path filters. |
tools/pipelines/server-historian.yml |
Updates pipeline installation usage and path filters. |
tools/pipelines/server-gitssh.yml |
Updates pipeline installation usage and path filters. |
tools/pipelines/server-gitrest.yml |
Updates pipeline installation usage and path filters. |
tools/pipelines/repo-policy-check.yml |
Updates root-only installation configuration and filters. |
tools/pipelines/README.md |
Documents shared installation template usage. |
tools/pipelines/docs-lint.yml |
Updates installation usage and path filters. |
tools/pipelines/build-test-tools.yml |
Updates installation usage and path filters. |
tools/pipelines/build-protocol-definitions.yml |
Updates installation usage and path filters. |
tools/pipelines/build-performance-observability.yml |
Updates installation usage and path filters. |
tools/pipelines/build-eslint-config-fluid.yml |
Updates installation usage and path filters. |
tools/pipelines/build-common-utils.yml |
Updates installation usage and path filters. |
tools/pipelines/build-client.yml |
Updates installation usage and path filters. |
tools/pipelines/build-build-tools.yml |
Updates installation usage and path filters. |
tools/pipelines/build-build-common.yml |
Updates installation usage and path filters. |
tools/pipelines/build-benchmark-tool.yml |
Updates installation usage and path filters. |
tools/pipelines/build-api-markdown-documenter.yml |
Updates installation usage and path filters. |
Review details
Suppressed comments (1)
tools/pipelines/templates/include-install-build-tools.yml:49
- This shared template is now changed to perform the dependency install, but none of the explicit CI/PR path filters for its consumers include
tools/pipelines/templates/include-install-build-tools.yml(the callers are reached throughinclude-set-package-version.yml/the npm build templates). A future change limited to this template therefore will not trigger those pipelines; add this template to the corresponding filters, or otherwise make the dependency part of the filter set.
- template: /tools/pipelines/templates/include-install.yml@self
parameters:
buildDirectory: $(FluidFrameworkDirectory)/build-tools
installPnpm: false
- Files reviewed: 25/25 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Fix the existing gap where installer-only changes did not trigger its consumers. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
The broad pipeline-template refactor still requires representative Azure Pipelines validation, especially for telemetry and non-PR-triggered consumers.
Review details
- Files reviewed: 25/25 changed files
- Comments generated: 0 new
- Review effort level: Balanced
|
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output |
Bundle size comparisonBase commit: Notable changesNo bundles changed by ≥ 500 bytes parsed. Per-bundle deltas
|
[AlejandroBot 8c2a]
Description
Consolidate Azure Pipelines dependency installation on
include-install.ymlso installs consistently use frozen lockfiles, retry failures, and identify the working directory in task names and logs.Add a root-only install option, migrate the remaining inline dependency installs, and keep build/link operations separate from retried installation. Preserve pnpm setup, authentication and cache ordering, and conditional installation behavior. Update pipeline path filters and document the shared template.
Also fix a pre-existing path-filter gap, not a regression introduced by this refactor: the explicit CI/PR filters of 12 consuming pipelines omitted
include-install-build-tools.yml. Azure Pipelines does not follow template dependencies when evaluating path filters, so changes limited to that file would not trigger those consumers. Add the installer to both filters in each pipeline. GitSSH remains unchanged because it disables package installation and version-setting.The telemetry install now explicitly targets the
ff_pipeline_hostcheckout and uses--frozen-lockfile. Keep the Bash inline because some consuming jobs do not check out FluidFramework.Addresses AB#53289.
Reviewer Guidance
The review process is outlined in the pull request guidelines.
Please focus on root-only versus full-workspace selection, Docker installation conditions, and multi-repository setup ordering. The policy-check template replaces its free-form install command with the root-only option.
Local YAML parsing and template-parameter checks passed. The path-filter follow-up was checked to contain exactly 24 filter additions across 12 pipelines with no other semantic changes. No workspace packages changed. Representative ADO validation remains incomplete, particularly telemetry and pipelines without PR triggers.