Conversation
CI built English only: the matrix covered platforms, not languages, and both build steps used the default (EN) scripts. Nothing in PR validation ever exercised JP, so JP-only breakage reached vnext and was found by a deploy. The two languages do not resolve content identically, so an EN build is not a proxy for a JP one. docs/angular/astro.config.ts maps @xplat-images to src/content/<lang>/images, which means an image present in EN does not satisfy a JP import — exactly how #873 happened, and what #842 asks for. Adds a lang axis to the existing matrix, taking it from 4 jobs to 8. The JP scripts already exist and are what the deploy workflows run, so each job is the same build the corresponding deploy performs, with DOCS_TOC_STRICT on. Also sets fail-fast: false. With two languages in the matrix the default would let a JP failure cancel the EN jobs, hiding results that are still worth seeing. Related to #842, #873 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Doubling the matrix to eight jobs makes superseded runs expensive: without a concurrency group, pushing to a PR leaves the previous run building all eight to completion while the new one starts, and nobody reads the old result. Grouping on head_ref keeps this per-PR, so runs on other PRs are untouched. The github.ref fallback is inert while this workflow is pull_request-only; it matters only if a push trigger is ever added. Safe to cancel here because these jobs only build — nothing is published or deployed, so a job killed mid-step leaves no partial state behind. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
CI built English only. The matrix covered platforms, not languages, and both build steps used the default (EN) scripts. Nothing in PR validation ever exercised Japanese, so JP-only breakage reached
vnextand was found by a deploy instead of by a check.An EN build is not a proxy for a JP one, because the two do not resolve content identically.
docs/angular/astro.config.tsmaps@xplat-imagestosrc/content/<lang>/images, so an image present in EN does not satisfy a JP import — which is exactly how #873 happened, and what #842 asks for a check against.Change
Add a
langaxis to the existing matrix, takingbuild-and-verifyfrom 4 jobs to 8:Each build step picks the language variant by suffix, so the EN legs run exactly the commands they run today and the JP legs run the same scripts the deploy workflows use:
ennpm run xplat:build:<platform>npm run angular:buildjpnpm run xplat:build:<platform>:jpnpm run angular:build:jpDOCS_TOC_STRICT: 'true'applies to both languages, so atoc.jsonentry pointing at a missing file now fails the JP build too, not just EN.Also sets
fail-fast: false. With two languages in the matrix the default would let a JP failure cancel the EN jobs, hiding results still worth seeing.Verification
Run locally against this matrix:
DOCS_TOC_STRICT=true npm run xplat:build:{angular,react,webcomponents,blazor}:jp— all four pass. No pre-existing JP strict-TOC problems, so nothing else here is lying in wait.DOCS_TOC_STRICT=true npm run angular:build:jp— fails onvnextwith the carouselImageNotFound; passes on fix(jp/angular): complete the carousel xplat sync for Japanese #873's branch (421 pages).So once #873 is in, this goes green on all 8. It will need a merge from
vnextafter that to pick the fix up.Cost
Doubles
build-and-verifyfrom 4 jobs to 8. They run in parallel, so wall-clock is roughly unchanged; runner minutes roughly double.Partly offset by the
concurrencygroup added here: pushing to a PR now cancels the run it supersedes, instead of leaving all eight jobs to finish for a result nobody reads. Grouping is onhead_refso other PRs are untouched, and cancelling is safe because these jobs only build — nothing is published or deployed, so a job killed mid-step leaves no partial state. The one tradeoff is that a run cancelled mid-flight gives partial logs rather than a final failure summary.If cost still matters after that, the remaining lever is narrowing the JP axis to Angular only — Angular is where the per-locale
@xplat-imagesresolution actually bites, and the xplat JP builds are the cheaper half of the value.Related
🤖 Generated with Claude Code