ci: add missing trigger paths for biome-formatted files#26569
Conversation
Files like .devcontainer/devcontainer.json and .vscode/extensions.json are formatted by biome but were not in the build-client pipeline trigger paths. PRs that only touch these files skip the format check, allowing formatting errors to merge (e.g. PR microsoft#26547 → fix PR microsoft#26565). Add .devcontainer/*, .vscode/*, .pnpmfile.cjs, _buildProject.config.cjs, and assertTagging.config.mjs to both trigger and pr path includes. Co-Authored-By: Claude Opus 4.6 <[email protected]>
There was a problem hiding this comment.
Pull request overview
Updates the build-client Azure DevOps pipeline path filters so CI runs when Biome-formatted repo config files change (e.g., devcontainer / VS Code configs), preventing format regressions from merging without CI coverage.
Changes:
- Add
.devcontainer/*and.vscode/*to bothtriggerandprpath include lists. - Add root-level Biome-formatted JS config files (
.pnpmfile.cjs,_buildProject.config.cjs,assertTagging.config.mjs) to bothtriggerandprpath include lists.
alexvy86
left a comment
There was a problem hiding this comment.
I don't like .vscode/ as a trigger for the whole build - client pipeline; changes there shouldn't affect the CI build. Would something like the repo-policy-check pipeline be enough to check for formatting of those files? Same for .devcontainer/. The cjs/mjs files do feel like good additions.
I agree - we can add a format step to the repo-policy-check pipeline instead, and that pipeline is already triggered on almost any change - maybe every change. |
Per review feedback, .devcontainer/* and .vscode/* shouldn't trigger the full build-client pipeline. Instead, add check:format:repo (biome check .) to repo-policy-check.yml, which runs on every PR with no path filter. This ensures formatting is always validated regardless of which files are changed. Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
Good call. Removed |
| displayName: Format Check (repo) | ||
| inputs: | ||
| command: 'custom' | ||
| customCommand: 'run check:format:repo' |
There was a problem hiding this comment.
nit
| displayName: Format Check (repo) | |
| inputs: | |
| command: 'custom' | |
| customCommand: 'run check:format:repo' | |
| displayName: Repo-wide checks | |
| inputs: | |
| command: 'custom' | |
| customCommand: 'run checks' |
This would run some additional checks. Some are client-only, but it's also cheap to run.
There was a problem hiding this comment.
Done — switched to npm run checks in d3c24e5.
There was a problem hiding this comment.
Reverted in 06215ca — npm run checks runs fluid-build --task checks which depends on flub/build-tools and full workspace deps, but this pipeline only installs root deps (pnpm install --workspace-root). Went back to check:format:repo since that's the only missing check here — policy-check and layer-check already run as separate steps above.
tylerbutler
left a comment
There was a problem hiding this comment.
Looks good once CI passes.
Per review feedback, run `npm run checks` instead of just `check:format:repo` since the additional checks are cheap. Co-Authored-By: Claude Opus 4.6 <[email protected]>
`npm run checks` runs `fluid-build --task checks` which depends on flub/build-tools and full workspace deps, but repo-policy-check only installs root deps. Revert to `check:format:repo` (biome) which is the only check needed here — policy-check and layer-check already run as separate steps in this pipeline. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Summary
PR #26547 changed
.devcontainer/devcontainer.jsonand.vscode/extensions.jsonbut no CI pipeline checked formatting, allowing a trailing comma error to merge (fixed by PR #26565).Root cause:
biome check .(run bycheck:format:repo) covers the entire repo, but no pipeline was running it on every PR. Thebuild-clientpipeline only triggers on specific paths, and.devcontainer/and.vscode/weren't included.Fix (two parts):
repo-policy-check.yml— Addcheck:format:repostep (biome check .). This pipeline runs on every PR with no path filter, so formatting is always validated regardless of which files change. Note:npm run checks(the broader check) can't be used here because it depends onfluid-build/fluband full workspace deps, but this pipeline only installs root deps.policy-checkandlayer-checkalready run as separate steps.build-client.yml— Add missing root-level config files that biome formats to the trigger paths:.pnpmfile.cjs_buildProject.config.cjsassertTagging.config.mjsTest plan
repo-policy-checkpipeline runscheck:format:repoon PRs touching any files🤖 Generated with Claude Code