Repository navigation
Immutable
release. Only release title and notes can be modified.
Same code as v1.0.0. This release publishes the action to the GitHub Marketplace.
Build, test and deploy only the projects a change affects, with no config file needed.
dynamic-monorepo works from three things:
- the git diff
- the projects in your repository, found from
package.json,go.mod,Cargo.toml,Dockerfile,pyproject.toml,pom.xml, Gradle,.csprojand HelmChart.yaml - the dependencies between those projects, read from their manifests
From these it outputs JSON lists for strategy.matrix, and the job summary says why each project was picked.
- uses: actions/checkout@v4
- uses: Continuous-Actions/dynamic-monorepo@v1
id: plan
# needs.plan.outputs.build -> ["@acme/shared","@acme/api","@acme/web"]Highlights
- Zero config. It auto-detects Node, Go, Rust, Python, Java (Maven/Gradle), .NET, Docker and Helm projects. A
dynamic-monorepo.config.json(with a JSON Schema) is only needed to override what was detected. - Follows dependencies. A change to a shared library selects everything that depends on it. Lockfiles only select the projects of their own ecosystem.
- Matrix outputs:
build,test,deployanddockerlists, pluspathsanddockerfilesmaps,has_*flags, and*_batchesoutputs for lists longer than 256 jobs. - Explains itself. The job summary gives a reason for every project, and the CLI previews the plan locally:
npx github:Continuous-Actions/dynamic-monorepo --base origin/main. - Works with the default checkout. A shallow clone is enough: it fetches only the commits it needs. It handles pull requests, pushes, force pushes, merge queues and new branches. When it can't compare correctly, it selects everything and says why.
- Safe to adopt:
- It needs only
contents: read, uses no secrets and makes no API calls. - Nothing from your repository is executed.
- It ships as a single committed bundle of about 100 KB.
- Releases are immutable.
- The code went through adversarial security and correctness reviews.
- It needs only
Demo: https://github.com/Continuous-Actions/dynamic-monorepo-demo