Content/tasks.packages.cake (54 lines of code) (raw):

Sitecore.Tasks.CopySpeRemotingFilesTask = Task("Packages :: Copy SPE remoting files") .Description("Copy Sitecore PowerShell Remoting (SPE) plugin assets from (`LIBS_SPE_DIR`) to the publishing target directory (`PUBLISHING_TARGET_DIR`).") .Does(() => { Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.PublishingTargetDir, "PublishingTargetDir", "PUBLISHING_TARGET_DIR"); Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.LibsSpeDir, "LibsSpeDir", "LIBS_SPE_DIR"); Verbose($"Copying files from {Sitecore.Parameters.LibsSpeDir} to {Sitecore.Parameters.PublishingTargetDir}."); CopyDirectory(Sitecore.Parameters.LibsSpeDir, Sitecore.Parameters.PublishingTargetDir); }); Sitecore.Tasks.CopyShipFilesTask = Task("Packages :: Copy Ship files") .Description("Copy Sitecore Ship plugin assets from (`LIBS_SHIP_DIR`) to the publishing target directory (`PUBLISHING_TARGET_DIR`).") .Does(() => { Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.PublishingTargetDir, "PublishingTargetDir", "PUBLISHING_TARGET_DIR"); Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.LibsShipDir, "LibsShipDir", "LIBS_SHIP_DIR"); Verbose($"Copying files from {Sitecore.Parameters.LibsShipDir} to {Sitecore.Parameters.PublishingTargetDir}."); CopyDirectory(Sitecore.Parameters.LibsShipDir, Sitecore.Parameters.PublishingTargetDir); }); Sitecore.Tasks.PrepareWebConfigTask = Task("Packages :: Prepare web.config") .Description("Transform `web.config` file located in config directory (`SRC_CONFIGS_DIR`) and copy it the publishing target directory (`PUBLISHING_TARGET_DIR`). This is required to make plugins work.") .Does(() => { Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.PublishingTargetDir, "PublishingTargetDir", "PUBLISHING_TARGET_DIR"); Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.SrcConfigsDir, "SrcConfigsDir", "SRC_CONFIGS_DIR"); Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.ScNodeEnv, "ScNodeEnv", "SC_NODE_ENV"); var _sourceFilePath = $"{Sitecore.Parameters.SrcConfigsDir}/Sitecore/web.config"; var _targetFilePath = $"{Sitecore.Parameters.PublishingTargetDir}/web.config"; var _transforms = Sitecore.Parameters.ScNodeEnv.Split('|').ToList(); Verbose($"Tranforming {_sourceFilePath} to {_targetFilePath}."); transform(_sourceFilePath, _targetFilePath, _transforms); }); // Installation will be skipped, if SC_SITE_URL is not set Sitecore.Tasks.RunPackagesInstallationTask = Task("Packages :: Install") .Description("Installs packages from a `libs/packages` directory (`LIBS_PACKAGES_DIR`) according to a node role (`SC_NODE_ROLE`). packages will be delivered via Sitecore Ship (`SC_SITE_URL`).") .Does(() => { if (string.IsNullOrEmpty(Sitecore.Parameters.ScSiteUrl)) { Warning($"Variable 'ScSiteUrl' is not set. Skipping step..."); } Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.LibsPackagesDir, "LibsPackagesDir", "LIBS_PACKAGES_DIR"); Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.ScNodeRole, "ScNodeRole", "SC_NODE_ROLE"); Sitecore.Utils.AssertIfNullOrEmpty(Sitecore.Parameters.ScSiteUrl, "ScSiteUrl", "SC_SITE_URL"); var _transforms = Sitecore.Parameters.ScNodeRole.Split('|').ToList(); var _files = new List<FilePath>(); foreach(var _role in _transforms){ Verbose($"Installing packages from '{Sitecore.Parameters.LibsPackagesDir}/{_role}/*.zip' into '{Sitecore.Parameters.ScSiteUrl}'"); _files.AddRange(GetFiles($"{Sitecore.Parameters.LibsPackagesDir}/{_role}/*.zip")); } DeploySitecorePackages(Sitecore.Parameters.ScSiteUrl, _files); }) .OnError(exception => { Warning("Installation of packages failed: " + exception.Message); });