Today the transformer emits raw Job + Image + Cache + script for every workflow. This issue adds a pattern-recognition layer that rewrites recognised step sequences into composite calls.
chant migrate <...> --emit ts --use-composites
v1 covers Node shapes only:
Checkout + SetupNode + npm/yarn/pnpm/bun ci + build + test → NodePipeline({...})
Checkout + SetupNode + npm/yarn/pnpm/bun ci + test (no build) → NodeCI({...})
- Package manager detected from
installCommand (npm ci / yarn install / pnpm install / bun install).
The recogniser runs on the GitLab IR (post-transform), not the GitHub IR. Off by default — --use-composites opts in. Pattern recognisers are pure IR rewrites with their own unit tests.
Follow-ups (separate issues): Python (PythonPipeline), Docker (DockerBuild), Go, deploy-environment shapes.
Done when
Depends on: #85, #89.
Today the transformer emits raw
Job + Image + Cache + scriptfor every workflow. This issue adds a pattern-recognition layer that rewrites recognised step sequences into composite calls.v1 covers Node shapes only:
Checkout + SetupNode + npm/yarn/pnpm/bun ci + build + test→NodePipeline({...})Checkout + SetupNode + npm/yarn/pnpm/bun ci + test(no build) →NodeCI({...})installCommand(npm ci/yarn install/pnpm install/bun install).The recogniser runs on the GitLab IR (post-transform), not the GitHub IR. Off by default —
--use-compositesopts in. Pattern recognisers are pure IR rewrites with their own unit tests.Follow-ups (separate issues): Python (
PythonPipeline), Docker (DockerBuild), Go, deploy-environment shapes.Done when
pattern-recognisers.tslands with the Node patterns above.--use-compositesflag wired through CLI.lexicons/github/examples/node-ci/produces aNodePipeline()call (compare againstlexicons/gitlab/examples/node-pipeline/).NeedsReview(deterministic).Depends on: #85, #89.