Predefined Build Configurations
Overview
The scaffolded solution comes with a list of build profiles each properly configured for the target environment:
- Sandbox - Local development environment. This is the main profile for developers to work in.
- Sandbox-Package - same as Sandbox but it's not configured to trigger local TDS deployment and instead creates an
.update
pacakge. This profile is normally used on a CI machine to build and run unit tests - INT-Single - A profile for deployment to an Integration environment that runs CM and CD on the same Sitecore instance
- QA-Single - Same as INT-Single but allows customizing
<site>
configuration for a differnt environment for Quality Assurance or client Acceptance Testing - PROD-Single - Production configuration (optimized code, no debug) for a single Sitecore instance running CM and CD
- PROD-CM - Production configuration for Content Management instance (will normally include all pipeline processors and event handlers that help/customize editing experience)
- PROD-CD - Production configuration for Content Delivery instance (will normally not include editing extensions and instead include
publish:remote:end
events, for example)
Normally developers don't build locally anything other than Sandbox. Other profiles are used by a continuos build and release automation processes.
Sandbox
We call it Sandbox because we like the idea of sandboxed Sitecore on a local instance in a ./sandbox
folder. Sandbox configuration highlights:
- Full debug info and not optimized code for all assemblies (Data, Custom, and Web projects)
- Local TDS deploy configured on TDS.Master project (no other profile is configured to deploy to a Sitecore instance from within Visual Studio)
- Scaffolded
<site>
configuration turns on Sitecore Item Web API and assumes the site runs on http://mysolution
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <sites> <site name="MySolution"> <patch:attribute name="hostName">mysolution</patch:attribute> <patch:attribute name="targetHostName">mysolution</patch:attribute> <patch:attribute name="cacheHtml">true</patch:attribute> <patch:attribute name="enableDebugger">true</patch:attribute> <patch:attribute name="allowDebug">true</patch:attribute> <patch:attribute name="itemwebapi.mode">StandardSecurity</patch:attribute> <patch:attribute name="itemwebapi.access">ReadOnly</patch:attribute> <patch:attribute name="itemwebapi.allowanonymousaccess">true</patch:attribute> </site> </sites> </sitecore> </configuration>
Sandbox-Package
Very similar to Sandbox but:
- not configured to deployed locally when build
- configured to generate an
.update
package for all TDS projects
INT-Single
Very similar to Sandbox-Package but with <site>
config customized for Integration environment and Web API disabled. Compare with the Sandbox, for example:
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <sites> <site name="MySolution"> <patch:attribute name="hostName">int.mysolution.com</patch:attribute> <patch:attribute name="targetHostName">int.mysolution.com</patch:attribute> <patch:attribute name="cacheHtml">true</patch:attribute> <patch:attribute name="enableDebugger">true</patch:attribute> <patch:attribute name="allowDebug">true</patch:attribute> </site> </sites> </sitecore> </configuration>
QA-Single
Same as INT-Single with its own <site>
configuration
PROD-Single
All production configuration have optimized build:
You may decide to change the Debug Info to pdb-only
based on how you approach deployments and troubleshooting in your environments
And, of course, customized <site>
definition.
PROD-CM and PROD-CD
Same as PROD-Single after the scaffolding. You would normally use either PROD-Single or PROD-CM + PROD-CD based on how you architect your production environment. In case of CM + CD you would make sure that you include your editing extensions and event handlers into CM but not CD