Content/tasks.artifacts.cake (68 lines of code) (raw):

Sitecore.Tasks.OptimizeBuildArtifactsTask = Task("Artifacts :: Optimize") .Description("Exclude unnecessary files from target directory (`ARTIFACTS_BUILD_DIR`).") .Does(() => { EnsureDirectoryExists(Sitecore.Parameters.ArtifactsBuildDir); Action<string, List<FilePath>> includeFiles = (pattern, collection) => { collection.AddRange(GetFiles(pattern)); }; // TODO: rewrite with glob var excludeList = new List<FilePath>(); // DLLs includeFiles($"{Sitecore.Parameters.ArtifactsBuildDir}/bin/(Sitecore|Lucene|Newtonsoft|System)*.dll", excludeList); includeFiles($"{Sitecore.Parameters.ArtifactsBuildDir}/bin/Microsoft.Web.Infrastructure*.dll", excludeList); // Files includeFiles($"{Sitecore.Parameters.ArtifactsBuildDir}/bin/*.pdb", excludeList); includeFiles($"{Sitecore.Parameters.ArtifactsBuildDir}/compilerconfig.json.defaults", excludeList); includeFiles($"{Sitecore.Parameters.ArtifactsBuildDir}/packages.config", excludeList); foreach(var filePath in excludeList) { if (!FileExists(filePath)) { Debug($"Not Found: {filePath}"); continue; } Debug($"Excluding: {filePath}"); DeleteFile(filePath); } }); Sitecore.Tasks.GatherBuildConfigsTask = Task("Artifacts :: Copy configuration files") .Description("Copy configuration files from source config directory (`SRC_CONFIGS_DIR`) to artifact directory (`ARTIFACTS_SRC_CONFIGS_DIR`).") .Does(() => { EnsureDirectoryExists(Sitecore.Parameters.ArtifactsSrcConfigsDir); Debug($"Copy configuration files from '{Sitecore.Parameters.SrcConfigsDir}' to '{Sitecore.Parameters.ArtifactsSrcConfigsDir}'"); CopyDirectory(Sitecore.Parameters.SrcConfigsDir, Sitecore.Parameters.ArtifactsSrcConfigsDir); }); Sitecore.Tasks.GatherBuildScriptsTask = Task("Artifacts :: Copy build scripts") .Description("Copy build scripts from source directory (`SRC_SCRIPTS_DIR`) to artifact directory (`ARTIFACTS_SRC_DIR`).") .Does(() => { EnsureDirectoryExists(Sitecore.Parameters.ArtifactsSrcDir); // Copy mandatory scripts Debug($"Copy cake scripts to '{Sitecore.Parameters.ArtifactsSrcDir}'"); var files = new [] { "./build.cake", "./build.ps1" }; CopyFiles(files, Directory(Sitecore.Parameters.ArtifactsSrcDir)); // Copy optional configuration files var configfilelist = (Sitecore.Parameters.SrcConfigFiles); char[] delimiterChars = {',', ';'}; Debug($"Copy optional configuration files {configfilelist} to '{Sitecore.Parameters.ArtifactsSrcDir}'"); var configfiles = (configfilelist.Replace(" ","")).Split(delimiterChars); foreach(var configfile in configfiles) { CopyFiles(configfile, Directory(Sitecore.Parameters.ArtifactsSrcDir)); } // Copy mandatory configuration files var targetDir = Directory(Sitecore.Parameters.ArtifactsSrcScriptsDir); EnsureDirectoryExists(targetDir); Debug($"Copy scripts '{Sitecore.Parameters.SrcScriptsDir}' to '{targetDir}'"); CopyDirectory(Directory(Sitecore.Parameters.SrcScriptsDir), targetDir); }); Sitecore.Tasks.GatherSitecorePackagesTask = Task("Artifacts :: Copy Sitecore packages") .Description("Copy Sitecore packages from source directory (`LIBS_PACKAGES_DIR`) to artifact directory (`ARTIFACTS_LIBS_PACKAGES_DIR`).") .Does(() => { var sourceFolder = $"{Sitecore.Parameters.LibsPackagesDir}"; var targetFolder = $"{Sitecore.Parameters.ArtifactsLibsPackagesDir}"; EnsureDirectoryExists(targetFolder); Verbose($"Copying packages files from {sourceFolder} to {targetFolder}."); CopyDirectory(Directory(sourceFolder), targetFolder); });