mdapi-smart-deploy
v1.0.2
Published
simplify salesforce metadata api sandbox deploy
Maintainers
Readme
mdapi-smart-deploy
Salesforce meta-data API smart deploy to sandboxes (don't use this for production)
About
mdapi:deployrequires that all the code on your filesystem at the time of deploy, be defined in package.xml. See details here.
I wanted to track all my sfdc in one repo, and be able to only deploy the metadata files that I'm working on at the moment, via the sfdx mdapi:deploy CLI command. mdapi-smart-deploy to the rescue..
Overview
In a deploy-metadata.yaml specify what you want to deploy, and mdapi-smart-deploy will:
- Create a zip file containing a dynamically generated
package.xml, with only the files you want to deploy. - Invokes
sfdx force:mdapi:deployagainst your sandbox. - Checks status of the deploy and reports errors
Usage
Make sure the root of your git repo has a
srcdir (containing your SFDC source).src/package.xmlcan exist, it will be ignored.Set the enviornment var
SFDC_SANDBOX_USERNAMEto your sandbox username. Runsfdx force:org:listto view your usernames.- bash:
export [email protected] - fish shell:
set -x SFDC_SANDBOX_USERNAME [email protected]
- bash:
Create a
deploy-metadata.yamlin your root specifying entries you would normally put inpackage.xml. exampleRun the following from the root of your repo
npx mdapi-smart-deployBefore promoting changes from your sandbox (to prod for example), remember to modify your
src/package.xmlto include your changes (--only-gen-package-xmlcan help generate the additions you need to make).
Example
Please see the examples directory
Options
--src-dir: specify the directory your metata files (code) lives. Relative to the root of your git repo. Defaults tosrc.--only-gen-package-xml: will ONLY generate and printpackage.xmlcontents tostdout. Will not invokemdapi:deploy--verbose: for debugging the tool
Known issues
Big one is, only a few metadata types are supported today. See this issue
