Move lint to a parallel CI job#26645
Move lint to a parallel CI job#26645frankmueller-msft wants to merge 3 commits intomicrosoft:mainfrom
Conversation
Remove lint from ci:build's serial dependency chain and run it as a parallel taskTest job in the build-client pipeline. The local `build` task still includes lint. This follows the approach from PR microsoft#25321 and the discussion in PR microsoft#26596. Co-Authored-By: Claude Opus 4.6 <[email protected]>
There was a problem hiding this comment.
Pull request overview
This PR moves lint out of the serial ci:build dependency chain so it no longer blocks compilation, docs, and manifest generation in CI. Lint is instead added as a parallel job (taskTest entry) that runs independently after the build stage completes. Local build task behavior is unchanged.
Changes:
lintis removed fromci:build'sdependsOninfluidBuild.config.cjs(replaced with a comment explaining the move)lintis added as ataskTestentry{ name: "lint", jobName: "Lint" }inbuild-client.yml, running in its own parallel job- A stale comment about
AreTheTypesWrongpotentially being moved to the "pack" stage is removed
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
fluidBuild.config.cjs |
Removes lint from ci:build dependencies; local build task retains lint |
tools/pipelines/build-client.yml |
Adds lint as a taskTest parallel job entry and updates taskLint comment |
| # to the "pack" stage since it can use the already-packed packages in that case. As it is the pipeline packs some | ||
| # packages twice. | ||
| # This check must be run after the build, since it relies on built files being present. | ||
| - { name: "lint", jobName: "Lint" } |
There was a problem hiding this comment.
The lint task is run via include-test-task.yml when placed in taskTest, which does not set the BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA: 1 environment variable. Previously, when lint ran through include-build-lint.yml, this variable was explicitly set (line 44) to suppress "data is over two months old" warnings from the browserslist transitive dependency baseline-browser-mapping. Without this variable, the new parallel lint job will emit 100+ identical warnings per build run (one per package), as documented in the comment in include-build-lint.yml. The include-test-task.yml template should be updated to pass this env var when running lint, or the variable should be added somewhere that applies to all tasks in the parallel job.
| - { name: "lint", jobName: "Lint" } | |
| - { name: "lint", jobName: "Lint", environment: { BASELINE_BROWSER_MAPPING_IGNORE_OLD_DATA: 1 } } |
Summary
lintfromci:build's serial dependency chain influidBuild.config.cjs, so it no longer blocks compilation/docs/manifestslintas ataskTestentry inbuild-client.yml, running it as an independent parallel job after the build stage completesbuildtask still includes lint — this only affects CIWhat this does NOT change
buildtask (local dev) — still includes lintlinttask definition — unchangedtaskLintparameter — staysfalse(we usetaskTestinstead of theinclude-build-lint.ymltemplate)Test plan
ci:buildno longer includeslintin its dependency chainbuild(local dev) still includeslint🤖 Generated with Claude Code