Introducing Sitecore.Ship Utils for VSTS

May 30, 2017

Blog | Development | Introducing Sitecore.Ship Utils for VSTS
Sitecore.Ship Utils for VSTS

At Geekhive, we are always looking to make the build and deployment processes easier. Setting up projects in Visual Studio Team Services can be a very complex process, but not anymore. 

Previously, we detailed setting up a Sitecore project in VisualStudioTeamServices covering everything from the project setup, to the build definition, to the release process.  Within the release process, we leveraged some Powershell scripts in order to install and publish the TDS generated Sitecore packages.  Those Powershell scripts needed to be included in the project source and published as a build artifact in order to be used by the release.  With VisualStudioTeamServices Extension: Sitecore Ship Utils all of these scripts are wrapped into a simple to use set of tasks.

The Tasks

Sitecore Ship Deploy Task Example

Sitecore Ship Deploy Task

This task will take:

  1. Your file as an input (like an .update file in our example from a published artifact)
  2. Your site url (the site where Sitecore.Ship is installed)

The basic goal of this task is to install the package on the site thru the fileupload Sitecore.Ship handler.

Sitecore Ship VSTS task example

Additionally, there are some timeout settings and support for Basic Auth (depending on how you have your endpoint secured).

Sitecore Ship Publish Task

This task takes your site url, similar to the last task where Sitecore.Ship is installed, a publish target, and a publish mode:

Sitecore Ship Publish Task

The publish target should map to one of your sites predefined publishing targets.  Available publish modes are smart, full, or incremental. And just like the previous task, there are advanced configurations containing timeout settings and basic authentication.

Sitecore Ship Get External IP Task

This tasks function is simple: get the external facing IP address of the agent running the current release. Why?  To allow you to whitelist it as an IP within the packageInstallation node in the web.config.  What this task does, is call out, determine the external IP address, and set the variable that’s defined in the task.

Sitecore Ship Get External IP Task
This allows you to do as you please with the IP address, like insert the variable directly into the web.config transform in order for it to be tokenized:
<packageInstallation enabled="true" allowRemote="true" allowPackageStreaming="true" recordInstallationHistory="false" xdt:Transform="SetAttributes">
<Whitelist xdt:Transform="Insert">
<add name="vsts" IP="__ReleaseIPAddr__" />


The goal of this extension and tasks is to help automate the deployment of Sitecore items, writing as little code as possible.

If you have any issues or suggestions please click here, happy deploying!

Steve VandenBush

Technical Lead
  • Development
  • Sitecore
  • TDS
  • Visual Studio Team Services
  • Web Development
Artifact Promotion Deployments: Sitecore Built in the Cloud

Not familiar with Sitecore Built in the Cloud?

Read this post by Steve to learn about Artifact Promotion Deployments: Sitecore Built in the Cloud...

Recent Work

Check out what else we've been working on