Skip to content

ci: add root level tasks to lage #4030

Open
Saadnajmi wants to merge 6 commits intomicrosoft:mainfrom
Saadnajmi:root
Open

ci: add root level tasks to lage #4030
Saadnajmi wants to merge 6 commits intomicrosoft:mainfrom
Saadnajmi:root

Conversation

@Saadnajmi
Copy link
Collaborator

Description of changes

We have some tasks that run per pacakge (build, lint, etc), and some that run at the workspace level (lint-lockfile, format because its way faster that way, etc. We didn't clearly delineate these two types of tasks and Lage would get confused when I tried to. So, I asked Claude to do it.

Claudes summary of the changes below

Add root-level tasks to lage pipeline

Problem

Several repo-wide checks (format:check, lint-lockfile, check-publishing) were running as standalone CI steps outside of lage, or not running at all through lage's task scheduler.

Changes

package.json

  • Added "." to workspaces so lage discovers the root package as a workspace, enabling root-only tasks
  • Added "lint-lockfile": "lint-lockfile" script (required for lage to invoke it as a pipeline task)
  • Removed scripts whose names collide with lage task/alias names (buildci, bundle, clean, lint, lint-package, test) — these caused infinite recursion because lage would invoke the script, which invoked lage again. Scripts that call lage but don't match a task name (lint-fix, lint-package-fix, build) are kept

lage.config.jslage.config.mjs

  • Converted to ESM
  • Added three root-only pipeline tasks with cache: false (using **/* inputs at the repo root would OOM from hashing the entire monorepo): check-publishing, format:check, lint-lockfile
  • Added repo-checks alias grouping the three root-only tasks — they run once at root instead of being spawned per-package
  • Added repo-checks to buildci
  • Removed format from the pipeline — sub-packages each have a format script, so lage format would spawn 80+ processes; yarn format at root already runs oxfmt over the whole repo in one shot
  • Removed pr-check alias — unused and redundant (was a subset of buildci)
  • Reorganized pipeline into labelled sections: per-package tasks, root-only tasks, pipeline aliases, worker tasks

.github/workflows/pr.yml

  • Removed standalone Check formatting and Run lint-lockfile steps — both are now covered by buildci via repo-checks
  • Changed yarn buildciyarn lage buildci (root no longer has a buildci script)

Verification

CI should pass

Pull request checklist

This PR has considered (when applicable):

  • Automated Tests
  • Documentation and examples
  • Keyboard Accessibility
  • Voiceover
  • Internationalization and Right-to-left Layouts

@changeset-bot
Copy link

changeset-bot bot commented Mar 1, 2026

⚠️ No Changeset found

Latest commit: 2e9eb7b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@Saadnajmi Saadnajmi changed the title ci(proposal): add root level tasks to lage ci(): add root level tasks to lage Mar 1, 2026
@Saadnajmi Saadnajmi changed the title ci(): add root level tasks to lage ci: add root level tasks to lage Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant