4

I have enabled the ExperienceBundle metadata type and am using SFDX-git-delta to generate package.xml files. SFDX-git-delta will generate a package.xml file like the following when one of the files in the experiences directory changes:

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types>
        <members>CommunityMdName</members>
        <name>ExperienceBundle</name>
    </types>
    <version>51.0</version>
</Package>

When I run sfdx force:source:deploy -x myPackage.xml -u user@user.org nothing is deployed.

  1. How can I get a package.xml based deployment to deploy the ExperienceBundle?
  2. Is it possible to only deploy the changes in the ExeperienceBundle while using the package.xml / -x (e.g., 3 view json files were changed, so only deploy those?)

I debugged with export SFDX_MDAPI_TEMP_DIR=metadata and see that the package.xml file that sfdx generates (note this is not the one sfdx-git-delta creates) doesn't include the ExperienceBundle type, despite it being in the source package.xml (the one sfdx-git-delta creates) and the source folder (main/default/experiences/CommunityMdName/..). SFDX also doesn't copy over the experiences directory.

I would really like to be able to use SFDX-git-delta + ExperienceBundle metadata.

Sidenote: It deploys fine when doing from the source directly with no package.xml, i.e., when using the -p option

5
  • Is there actual metadata being produced after using git-delta? Mar 19 at 12:38
  • The sfdx-git-delta produces the package.xml file to use as the -x package.xml file. The ExperienceBundle information is in the experiences source folder in the source format that has json files for everything instead of one giant binary. Mar 19 at 12:50
  • Understood. I just wasn't sure if Git-Delta was also responsible for actually producing the metadata or just package.xml. Since you were saying "nothing is being deployed" just wanted to make sure there was actual metadata. And to clarify, I was able to deploy an Experience Bundle with packge.xml just now as well. Double check the site name to make sure it is correct Mar 19 at 12:54
  • Try including Network, Site folder. From what I remember ExperienceBundle is just a replacement for SiteDotCom
    – ytiq
    Mar 19 at 13:18
  • @ytiq - added those 2 and they both show up in the intermediate sfdx metadata internal directory, but still not the experiences directory. Mar 19 at 14:12
4

Delta deploys for the Experience Bundle is not supported as of today!

You have to deploy the whole bundle along with the Network and Sitedotcom and other related metadata (like if you have objects and fields and lightning pages referencing it) to the Experience Bundle!

As far as package.xml is concerned this might be a bug in the CLI where the experiences directory is ignored.

-1

The package.xml should look like below :

<Package xmlns="http://soap.sforce.com/2006/04/metadata">
   <types>
        <members>Default_User_Profile_Menu1</members>
        <name>NavigationMenu</name>
    </types>
   <types>
        <members>CommunitiesLanding</members>
        <name>ApexPage</name>
    </types>
    <types>
        <members>OrgTest1</members>
        <name>ExperienceBundle</name>
    </types>
    <types>
        <members>OrgTest</members>
        <name>Network</name>
    </types>
    <types>
        <members>OrgTest</members>
        <name>CustomSite</name>
    </types>
    <version>51.0</version>
</Package> ```

We need to retrieve all these components and then deploy. 
1
  • Welcome to Salesforce Stack Exchange (SFSE). It is unclear how your instructions of retrieving these components first will solve the original issue. The question is about how to deploy the deltas (a.k.a. changes) that have been made locally. Please edit your answer to give more context and clarify exactly how this answers the question.
    – Moonpie
    Sep 5 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.