June 23, 2014

Setup a continuous integration for Sitecore with TDS - TFS 2013 and Octopus - Step 2: Configure TFS

This is the third post of a series of post about the setup of a continuous integration for Sitecore.  If you have miss the 2 first post here are the links:
  1. Setup a continuous integration for Sitecore with TDS - TFS 2013 and Octopus - Architecture
  2. Setup a continuous integration for Sitecore with TDS - TFS 2013 and Octopus - Step 1: Customize the TFS workflow
Now that we have our custom build template we are ready to configure it.

TDS settings:
  1. Set "TDS : Generate packages" to true to generate the TDS packages
  2. Set "TFS : IsDesktopBuild" to false because I don't want to deploy my TDS packages on the current server which is the build server. I need to embed those packages into nuget packages.
Octopus settings:
  1. Set "Octopack : API Key of the nuget server". You can find this setting into the app setting  "apiKey" of the nuget server
  2. Set "Octopack : Publish packaged to http" to the url of the nuget server it should look like : "http://YOUR_DOMAIN/api/v2/package/"
  3. Set "Octopack : Run OctoPack" to true. This will run the octopack command to generate and publish the nuget packages to the server.
Octopack:
To generate the octopus packages, I use the nuget package called OctoPack. It is really easy to use: you just need to install this nuget package in every web project. This will generate the package for you when you build with msbuild with the custom parameters we have set. 
I also create another project who will be used to deploy my TDS packages and install the Octopack package in this project. To do that, you can create an empty project (a console project in my case) and add a .nuspec file. The content of this nuspec should refer the different .update packages generated by TDS as in the following example:
<?xml version="1.0"?>
<package >
  <metadata>
    <id>XXX.TDSDeploy</id>
    <version>1.0.0</version>
    <authors>Vangansewinkel Benjamin</authors>
    <owners>Vangansewinkel Benjamin</owners>
    <projectUrl>http://www.xxx.be</projectUrl>
    <iconUrl>http://www.xxx.be/design/images/generalImages/favicon.ico</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>XXX TDS package</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2014</copyright>
  </metadata>

  <files>
    <file src="..\..\..\..\..\bin\_Packages\XXX.CoreTDS\XXX.CoreTDS.scitems.update" target="content\TdsPackages\XXX.CoreTDS.1.1.J.B.update" />
    <file src="..\..\..\..\..\bin\_Packages\XXX.LayoutsTDS\XXX.LayoutsTDS.scitems.update" target="content\TdsPackages\XXX.LayoutsTDS.1.1.J.B.update" />
    <file src="..\..\..\..\..\bin\_Packages\XXX.TemplatesTDS\XXX.TemplatesTDS.scitems.update" target="content\TdsPackages\XXX.TemplatesTDS.1.1.J.B.update" />
  </files>
</package>

No comments:

Post a Comment