Skip to main content

Communities Deployment Hell

so
Communities
they are split into multiple things in the backend
a Network
a Site
and some other free floating shit like the guest user, profile access, etc.
Network is what you think about when you read Communities
it's where the comm builder etc lives
the Site is how they exposed it to the world. it's a legacy feature wrapped in a new one
the Site as detailed in my longer rant used to be where you handled translations and shit, because OF COURSE that was a good idea, anyway.
when deploying a community you have a two options
"bundle" it with a Lightning Bundle as they call it, which is basically a template of your community
this works nicely but doesn't include everything about the comm (I forget what exactly but some stuff like branding etc wouldn't get carried over as well as some custom pages)
or pushing the Network and the Site via Changeset or API.
now via API is what Gearset does. The good point of API deployment is that you can target the network site, and related StaticResources and other shit directly
it's easy enough
the bad thing is that API deployments rely on the backend structure being sane, which is isn't. Example: if you have two object `REALLYLONGPREFIX_stuff__c ` and `REALLYLONGPREFIX_shit_c ` the backend stores a truncated version of the page
so if you do custom pages
this results in you having the pages being possibly misattributed to the other object
or vice versa
or overwriting the other page
at random
everytime
on deploy
Q U A L I T Y.
the API deployments are also less fault tolerant than changesets meaning if something's missing it'll just completely fail and some of the community errors are quite arcane
specifically the ones related to Site deployment
so, changesets ?
well changesets aren't much better
you can still get the arcane Site deployment errors, thoughtless of them because it resolves some missing shit on its own for some reason ????
but what's nice is that the community elements will save in whichever order
so for example
you can completely have a community that'll deploy
but fail because the Asset for the custom logo of the banner is missing
even though you included it in the changeset
so now you gotta deploy the asset alone
and then deploy the community
which will STILL say that the deployment FAILED but show you a green checkbox saying "deployed successfully"
which will actually mean it deployed successfully because the only failed elements are the Assets.
nope, still not kidding.
now for easy ass communities you might get a deploy that goes well
and SF may hotfix some of those issues
but in the meantime it's better to consider the entire deployment process hell
plan more time for it than needed
and if it's simple in the end well that's awesome.