Skip to content

Instantly share code, notes, and snippets.

@msrivastav13
Created October 12, 2018 04:18
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save msrivastav13/881dd229d75780283675b40c36d5e85c to your computer and use it in GitHub Desktop.
Save msrivastav13/881dd229d75780283675b40c36d5e85c to your computer and use it in GitHub Desktop.
Generates package.xml from the Unmanaged container/Managed Package or Changesets
#!/bin/bash
if [ $# -lt 1 ]
then
echo Usage: generatepkgXML.sh orgalias packageName
exit
fi
## Retrieve the PackageXML from Unmanaged Container
sfdx force:mdapi:retrieve -s -r ./mdapipkg -u $1 -p "$2" # Retrieve Metadata API Source from Package Name
unzip -o -qq ./mdapipkg/unpackaged.zip -d ./mdapipkg # Unzip the file
rm -rf ./manifest/ # If manifest directory exists delete it
mkdir ./manifest/ # Create a New Manifest Directory
cp -a ./mdapipkg/package.xml ./manifest/ # Copy package.XML to manifest directory
rm -rf ./mdapipkg # Delete the mdapipkg source
@msrivastav13
Copy link
Author

msrivastav13 commented Nov 1, 2018

chmod +x ./scripts/generatepkgXML.sh
./scripts/generatepkgXML.sh devOrg "SampleApp"

@msrivastav13
Copy link
Author

sfdx force:source:retrieve -x ./manifest/package.xml -u devOrg

@msrivastav13
Copy link
Author

sfdx force:config:set defaultusername=devOrg

@msrivastav13
Copy link
Author

./scripts/deploypkg.sh devOrg2

@Hi2Rajesh
Copy link

Hi Srivastav, Am trying to use the shell script to create a package.xml . But an getting an error, Application Failed Exception

@msrivastav13
Copy link
Author

@Hi2Rajesh Use the sfdx plugins:install:mo-dx-plugin.

And then download the Vscode extension plugin named "DX code companion". This has command to download CCDX: Retrieve source from package

@balanandam
Copy link

Hi Srivastav,

Really It was a nice video shared by you on SFDX with non scratch org. Appreciate you on sharing knowledge.

We are planning to implement the CICD for SFDC sales application, currently we team using changesets to deploy in different orgs like (Dev, SIT, UAT, PROD) manually. Here Dev Org is used by the Dev team, and the CICD tool is GITLAB.
Here I have question:
I am actually a DevOps person not background on Salesforce,
can we implement CICD without scratch org for deploying packages into different orgs ?
No Static code analysis and no automation testing available in current application.
Since application is dependent on manual testing at each level, after package metadata, should we commit metadata package back to Git repo into different directory for deploying to higher environments ?
Thanks a lot for your support. Appreciate you.

Regards,
Bala

@msrivastav13
Copy link
Author

msrivastav13 commented Jun 3, 2020 via email

@balanandam
Copy link

balanandam commented Jun 3, 2020 via email

@balanandam
Copy link

Hi Shrivastava,

Regarding, the profiles and permission sets automated deployment into sandboxes and PROD through CICD.
While using scratch org model development, I could see that it is creating entire package of force-app directory, if entire force-app directory is deployed into any sandbox which would take more time to do the deployment right. Instead of that what would be easy approach to do deployment while using scratch orgs and
How are maintaining the code in Git repo like Feature branch(what it contains - Only feature changes or entire source code)
After creating a scratch org (empty) while pushing code the scratch org ( it's throwing many errors and we have more than 15000+ components certainly which are taking more time and failing to push). Need suggestion on move forward further at this point.
Thanks for your support and appreciate you.

@SurDevOps
Copy link

@balanandam Scratch Org has limitation of 10k metadata components. Were you able to proceed, if so please share your journey too.

@gghosh1958
Copy link

Hello Mohith,
I am trying to create package.xml for Salesforce CPQ only. Can you please please help me on this. I sincerely appreciate it.

Regards,
Goutam

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment