Overview
validate command helps you to test ((deployability, apex tests, coverage) a change made to your configuration / code against a target org. This command is typically triggered as part of your Pull Request (PR) or Merge process, to ensure the correctness of configuration/code, before being merged into your main branch.
sfp validates a change by deploying the changed packages into the target org. This is different from 'check only' deployment in other CI/CD solutions.
validate runs against a target org. To validate against a pooled scratch org, fetch one from the pool first (sfp pool fetch) and pass its username — the earlier sfp validate pool command, which fetched from the pool itself, has been removed.
--releaseconfig (also accepted as --domain) is required — validation is always scoped to one or more release configs.
// An example where validate is utilized against a target org
sfp validate org -o ci \
-v devhub \
--releaseconfig config/release-sales.yml \
--installdeps// An example with branch references for intelligent synchronization
sfp validate org -o ci \
-v devhub \
--releaseconfig config/release-sales.yml \
--ref feature-branch \
--baseRef mainBoth commands also require --repository and --sfp-server-url. Each defaults from an environment variable — GITHUB_REPOSITORY or GITLAB_REPOSITORY, and SFP_SERVER_URL — so they can be omitted in a pipeline that sets them.
The validate org command runs the following checks with the options to enable additional features such as dependency and impact analysis:
- Checks accuracy of metadata by deploying the metadata to an org
- Triggers Apex Tests
- Validates Apex Test Coverage of each package (default: 75%)
- Toggle between different modes for validation:
- Thorough (Default) - Comprehensive validation with full deployments and all tests
- Individual - Validates changed packages individually, ideal for PRs
- Automatically differentiates between:
- Packages to synchronize (upstream changes)
- Packages to validate (PR changes)
- Deploys only the components that changed, via component checksum skip — on by default, turned off for a run with
--no-checksum-skip - [optional] - AI-Assisted Error Analysis - Intelligent error analysis and fix suggestions (learn more)
- [optional] - Validate dependencies between packages for changed components
- [optional] - Restrict validation to changed packages with
--diffcheck(off by default) - [optional] - Skip test execution entirely (
--skipTesting), or skip only coverage validation (--skipCoverage) - [optional] - Keep validating the remaining packages after a package's tests fail (
--continueOnTestFailure) — the run still fails at the end - [optional] - Write the validation report to a directory (
--markdownoutput) or publish the run to the server (--publish-results) - [optional] - Embed apex tests inside the deploy with
--deploywithtestsfor faster validate (one round-trip; coverage read from the deploy response) - [optional] - Execute custom validation scripts for setup/cleanup workflows