on:
push:
paths:
- 'apps/web/**'
- 'packages/ui/**'
- '.github/workflows/web.yml' Path filters are one of the easiest ways to cut CI minutes in monorepos.
Selective execution, shared scripts, naming, and maintainable organization for growing automation estates.
Scope work to only the apps and packages that changed.
on:
push:
paths:
- 'apps/web/**'
- 'packages/ui/**'
- '.github/workflows/web.yml' Path filters are one of the easiest ways to cut CI minutes in monorepos.
web_test:
stage: test
rules:
- changes:
- apps/web/**/*
- packages/ui/**/*`rules:changes` helps keep large repositories efficient and focused.
Drive job fan-out from changed package lists or matrix inputs.
strategy:
matrix:
package: [api, web, worker]Static or generated matrices work well for polyrepo-like monorepo segments.
Organize by shared templates and clearly named workflows.
Keep YAML small by moving logic into versioned scripts.
./scripts/ci/install.sh
./scripts/ci/test.sh
./scripts/ci/build.shThin YAML plus reusable scripts is often easier to test and review than giant inline shell blocks.
Name workflows by concern or application area.
ci-web.yml
ci-api.yml
deploy-production.yml
nightly-maintenance.ymlGood naming helps teams navigate automation quickly as the number of workflows grows.
Add workflow status badges to docs or README files.
Status badges are simple but useful for surfacing build health in public repos and internal dashboards.