Ignore File Patterns
Skip unnecessary push redeploys for documentation, metadata, and other non-runtime changes.
Use Case
Use ignoreFiles when changes to certain files should not redeploy an active
Lifecycle environment. Common examples are docs, generated metadata, examples,
or workflow files that do not affect a running service.
Lifecycle skips a push redeploy only when every changed file is ignored by every active affected service. If Lifecycle cannot prove the push is safe to skip, it redeploys.
Config
Define shared patterns under environment.ignoreFiles. Add service-specific
patterns under services[].ignoreFiles.
This config means:
docs/**and**/*.mdapply to bothapiandfrontend.openapi/**applies only toapi.- A push that changes only
docs/readme.mdcan skip both services. - A push that changes only
openapi/schema.yamlcan skip only when every active affected service ignores that path.
Environment patterns are inherited by each service. Service patterns only apply to that service.
Rules
Patterns are matched against GitHub file paths.
| Rule | Example |
|---|---|
Use / paths | docs/setup.md, not docs\\setup.md |
| Repo-relative | docs/**, not /docs/** |
| Case-sensitive | docs/** does not match Docs/guide.md |
| Dotfiles match | .github/** matches .github/workflows.yml |
| Broad globs work | **/* matches all files |
Paths are repo-relative and case-sensitive. docs/** and Docs/** are
different paths, and patterns should not start with /.
Common patterns:
Broad patterns like **/* are allowed, but use them only when the service
should ignore all push file changes from that repo.
Active Services
Only active services affected by the pushed repository and branch need matching ignore patterns.
Optional services only count when they are deployed in the current
environment. If worker is optional and not deployed, its ignoreFiles
config does not affect the skip decision.
If one active affected service does not ignore a changed file, Lifecycle redeploys instead of skipping.
Always Redeploys
Lifecycle always redeploys when lifecycle.yaml or lifecycle.yml changes,
when the current deploy is already failing, and for static environments.
Lifecycle also redeploys when:
- a changed file does not match every active affected service’s ignore patterns
- Lifecycle cannot safely read the changed file list
Debug
If a push redeployed when you expected it to skip, check:
- Did the push change
lifecycle.yamlorlifecycle.yml? - Did every changed file match the patterns exactly, including casing?
- Did every active affected service inherit or define a matching pattern?
- Is an optional service currently deployed in the environment?
- Is the current deploy already in an error state?
When in doubt, keep the pattern narrow. It is better to redeploy one extra time than to skip a change that affects a running service.