6

In the Helix/Habitat style, I have a solution with many 'web projects'. So if using octopus Deploy / Octopack, should I have a package for each Web project in my solution? If so, how/where does each package get deployed?

Do the contents of different src web projects end up merged to one target site?

1
  • ...further to this. Am i correct in thinking I create a package for any 'web project' inside Foundation, Feature and Project layers. Then for each of those i copy 'Views', 'bin' and 'App_Config' to the target site in that order..
    – Phil
    Commented Nov 14, 2016 at 11:49

1 Answer 1

4

If your multisite Habitat solution is using a single IIS site, per the current license model. Then all the web projects (Feature/Foundation/Project) are batched into a single package. That is how we are currently doing it. We are publishing all the files to a single temp location, similar to a deployment. Then we deploy all the yml files and folder structure for Unicorn into its own folder. Finally packaging that up into a NuGet package for deployment.

Looking at the Habitat solution, you can see that the CI script runs through all the projects gathering all the files into a single package. https://github.com/Sitecore/Habitat/blob/master/gulpfile-ci.js#L60

gulp.task("CI-Enumerate-Files", function () {
    var packageFiles = [];
    config.websiteRoot = websiteRootBackup;

    return gulp.src(path.resolve("./temp") + "/**/*.*", { base: "temp", read: false })
      .pipe(foreach(function (stream, file) {
          var item = "/" + file.relative.replace(/\\/g, "/");
          console.log("Added to the package:" + item);
          packageFiles.push(item);
          return stream;
      })).pipe(gutil.buffer(function () {
          xmlpoke("./package.xml", function (xml) {
              for (var idx in packageFiles) {
                  xml.add("project/Sources/xfiles/Entries/x-item", packageFiles[idx]);
              }
          });
      }));
});

If you solution is using multiple IIS sites, then you are going to want to package up all the assets into separate NuGet packages so that you can deploy to each site separately. This would include all Features and Foundation as well as the IIS sites project project(s).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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