Skip to content

feat(ci): skip language toolchains for documentation-only changes - #885

Merged
cb-ekuersch merged 2 commits into
masterfrom
toshi/extract-ci-nx-scripts
Sep 16, 2026
Merged

cb-ekuersch merged 2 commits into
masterfrom
toshi/extract-ci-nx-scripts

Conversation

@cb-ekuersch

@cb-ekuersch cb-ekuersch commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

What changed? Why?

Extracted from #877 so the CI/Nx classification changes can land independently of the Android
Button port.

The toolchain classifier previously fell through to node = true for any changed file it could not
attribute to a project or a Gradle/Xcode path. That meant a docs-, skill-, or AGENTS.md-only edit
started the full Node lane, and a native-only PR that also touched docs started Node alongside
Gradle.

  • tools/ci/toolchains.mjs now treats docs/, .claude/, .agents/, skills/, and unmatched
    .md/.mdx files as language-agnostic: they do not start Node, Gradle, or Xcode on their own.
  • Files owned by a project still resolve to that project's toolchain first, so
    packages/cds-android/docs/interaction.md still routes to Gradle and root Node config
    (package.json, eslint.config.mjs) still routes to Node.
  • Shared CI/Nx classification files still enable every toolchain, unchanged.
  • allToolchains() moved from classifyToolchains.mjs into toolchains.mjs and is now exported,
    so the fallback path and the classifier share one definition.
  • .prettierignore ignores packages/mobile-visreg/maestro-test-output/, which is already
    gitignored but would otherwise fail nx format:check.
  • docs/ci.md and docs/nx.md document the new routing.

Also drops the legacy tools package from .github/actions/setup-android. Google removed it from
the SDK repository around 2026-09-15, so sdkmanager tools now fails with
Failed to find package 'tools' and takes the whole setup step down before platform-tools or the
platform are installed. Every Gradle-lane run has failed since — it is unrelated to this PR, but
this PR touches tools/ci/toolchains.mjs, which enables all toolchains, so it surfaced here.
Nothing in the build used it: AGP fetches build-tools itself, and the sdkmanager/avdmanager
binaries it carried now live in cmdline-tools, preinstalled on the runner.

Root cause (required for bugfixes)

N/A — CI routing change.

UI changes

iOS Old iOS New
N/A N/A
Android Old Android New
N/A N/A
Web Old Web New
N/A N/A

Testing

How has it been tested?

  • Unit tests
  • Interaction tests
  • Pseudo State tests
  • Manual - Web
  • Manual - Android (Emulator / Device)
  • Manual - iOS (Emulator / Device)

Testing instructions

yarn nx run tools:test
yarn nx format:check

The Android lane running green on this PR is the check for the setup-android fix.

Three new cases in tools/ci/toolchains.test.mjs cover the mixed native + docs change, the
docs/skills-only change, and the root Node config change.

Illustrations/Icons Checklist

Required if this PR changes files under packages/illustrations/** or packages/icons/**

N/A

Change management

type=routine
risk=low
impact=sev5

automerge=false

Classify docs/, .claude/, .agents/, skills/, and unmatched root markdown as
language-agnostic so they no longer start the Node, Gradle, or Xcode lanes on
their own. Files owned by a project still resolve to that project's toolchain,
and shared CI/Nx classification files still enable every toolchain.

Also hoists allToolchains() into toolchains.mjs and ignores the generated
mobile-visreg maestro output in Prettier.

Co-Authored-By: Claude <noreply@anthropic.com>
@cb-heimdall

cb-heimdall commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Heimdall Review Status

Requirement Status More Info
Reviews ✅ 1/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 1
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1
CODEOWNERS ✅ See below

✅ CODEOWNERS

Code Owner Status Calculation
ui-systems-eng-team ✅ 1/1
Denominator calculation
Additional CODEOWNERS Requirement
Show calculation
Sum 0
0
From CODEOWNERS 1
Sum 1

Google removed the legacy `tools` package from the SDK repository, so
`sdkmanager tools` now fails with "Failed to find package 'tools'" and takes the
whole setup-android step down before platform-tools or the platform install.
Every Gradle-lane run has failed since 2026-09-15.

Nothing in the build uses it: the Gradle jobs need platform-tools and the
compileSdk platform, AGP fetches build-tools itself, and the sdkmanager /
avdmanager binaries it used to carry now live in cmdline-tools, which is
preinstalled on the runner. packages/cds-android/README.md already documents the
requirements without it.

Co-Authored-By: Claude <noreply@anthropic.com>
@cb-heimdall

Copy link
Copy Markdown
Collaborator

Review Error for adrienzheng-cb @ 2026-09-16 17:29:57 UTC
User failed mfa authentication, either user does not exist or public email is not set on your github profile. \ see go/mfa-help

@adrienzheng-cb
adrienzheng-cb self-requested a review September 16, 2026 17:30
@cb-ekuersch
cb-ekuersch merged commit 6db98bf into master Sep 16, 2026
32 checks passed
@cb-ekuersch
cb-ekuersch deleted the toshi/extract-ci-nx-scripts branch September 16, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants