feat: convert to composer-plugins pnpm+moon monorepo with Changesets and SDK upgrade train #7
Workflow file for this run
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
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main, release] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| # moon resolves a merge base against the PR's base ref to compute touched files, which a | |
| # shallow clone cannot do — the base branch is not in the object store. | |
| fetch-depth: 0 | |
| # Installs proto + the toolchain pinned in .prototools (node, pnpm, moon) and runs pnpm install. | |
| - uses: moonrepo/setup-toolchain@v0 | |
| with: | |
| auto-install: true | |
| # moon installs node_modules itself when a task runs, so a step invoking a binary directly | |
| # needs deps present first. --frozen-lockfile also fails the job on lockfile drift. | |
| - run: pnpm install --frozen-lockfile | |
| # Formatting first: it is the cheapest check and a single unformatted file fails the job. | |
| - run: pnpm run format-check | |
| - run: moon run :lint | |
| # `:build` runs each plugin's typecheck + `vite build`, emitting dist/manifest.json | |
| # (incl. the resolved `dependencies` SDK-compat snapshot). | |
| - run: moon run :build | |
| - run: moon run :test |