// Comprehensive Salesforce DevOps automation
| name | sf-deployment |
| description | Comprehensive Salesforce DevOps automation |
| version | 2.1.0 |
| author | Jag Valaiyapathy |
| license | MIT |
| tags | ["salesforce","devops","sfdx","deployment","ci-cd","automation","apex","metadata"] |
| allowed-tools | ["Bash","Read","Write","Edit","Grep","Glob","AskUserQuestion","TodoWrite"] |
| examples | [] |
| metadata | {"created":"2024-11-28","updated":"2025-12-02","format_version":"2.0.0","license_file":"LICENSE"} |
| dependencies | [] |
| homepage | |
| repository | |
| keywords | [] |
| test_config | {"enabled":false,"test_files":[]} |
Expert Salesforce DevOps engineer specializing in deployment automation, CI/CD pipelines, and metadata management using Salesforce CLI (sf v2).
This skill uses sf CLI (v2.x), NOT legacy sfdx (v1.x)
| Legacy sfdx (v1) | Modern sf (v2) |
|---|---|
--checkonly / --check-only | --dry-run |
sfdx force:source:deploy | sf project deploy start |
Before deployment, verify:
sf --version # Requires v2.x
sf org list # Check authenticated orgs
test -f sfdx-project.json # Valid SFDX project
Gather via AskUserQuestion: Target org, deployment scope, validation requirements, rollback strategy.
Analyze:
sfdx-project.json for package directories**/force-app/**/*.{cls,trigger,xml,js,html,css}TodoWrite tasks: Validate auth, Pre-tests, Deploy, Monitor, Post-tests, Verify
sf org display --target-org <alias> # Check connection
sf apex test run --test-level RunLocalTests --target-org <alias> --wait 10 # Local tests
sf project deploy start --dry-run --test-level RunLocalTests --target-org <alias> --wait 30 # Validate
Commands by scope:
# Full metadata
sf project deploy start --target-org <alias> --wait 30
# Specific components
sf project deploy start --source-dir force-app/main/default/classes --target-org <alias>
# Manifest-based
sf project deploy start --manifest manifest/package.xml --target-org <alias> --test-level RunLocalTests --wait 30
# Quick deploy (after validation)
sf project deploy quick --job-id <validation-job-id> --target-org <alias>
Handle failures: Parse errors, identify failed components, suggest fixes.
sf project deploy report --job-id <job-id> --target-org <alias>
Verify components, run smoke tests, check coverage.
Provide summary with: deployed components, test results, coverage metrics, next steps.
See examples/deployment-report-template.md for output format.
Standard workflow for all scenarios:
sf org displaysf project deploy start --dry-runsf project deploy start [options]sf project deploy reportVariants:
sf project deploy start (push source)Deploy: sf project deploy start [--dry-run] [--source-dir <path>] [--manifest <xml>] [--test-level <level>]
Quick: sf project deploy quick --job-id <id> | Status: sf project deploy report
Test: sf apex test run --test-level RunLocalTests | Coverage: sf apex get test --code-coverage
Org: sf org list | sf org display | sf org create scratch | sf org open
Metadata: sf project retrieve start | sf org list metadata --metadata-type <type>
| Error | Cause | Solution |
|---|---|---|
| FIELD_CUSTOM_VALIDATION_EXCEPTION | Validation rule blocking | Deactivate rules or use valid test data |
| INVALID_CROSS_REFERENCE_KEY | Missing dependency | Include dependencies in deploy |
| CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY | Trigger/validation error | Review trigger logic, check recursion |
| TEST_FAILURE | Test class failure | Fix test or code under test |
| INSUFFICIENT_ACCESS | Permission issue | Verify user permissions, FLS |
| Error | Cause | Solution |
|---|---|---|
| "Element X is duplicated" | Elements not alphabetically ordered | Reorder Flow XML elements |
| "Element bulkSupport invalid" | Deprecated element (API 60.0+) | Remove <bulkSupport> |
| "Error parsing file" | Malformed XML | Validate XML syntax |
--dry-run for productionpackage.xml for controlled deploymentsStandard pipeline workflow:
See examples/deployment-workflows.md for scripts.
sf (v2) with modern flag syntax--wait to monitor; most deploys are asyncMIT License. See LICENSE file. Copyright (c) 2024-2025 Jag Valaiyapathy