TFS 2015 embeds previous vNext functionality to provide you workflow-driven, scriptable builds. This is based on establishing discrete tasks that can be reused between your build definitions and release definitions as relevant.
You can extend the basic set of tasks, which, though sufficient for very simple builds and releases, might quickly become insufficient. New tasks are called “extension tasks”. Discussing how to create one is out of scope for this post so we’re assuming that you already have a path that describes a task. At the very least, there will be a task.json file in it.
What comes next?
- Install Microsoft’s “tfx” tool.
- Added support for “Basic Authentication” to your on-premise TFS’ IIS server.
- Enable Basic Authentication on that IIS server.
- Login to your TFS using the tfx tool.
- Upload task.
1. Install Microsoft’s “tfx” tool
This is a cross-platform project that requires NodeJS to be installed locally. The TFS-CLI project is hosted here: https://github.com/Microsoft/tfs-cli.
npm install -g tfx-cli
2. Add support for “Basic Authentication” to your on-premise TFS’ IIS server
On a workstation flavor of Windows (in my case, Windows 8.1):
- Go to “Programs and Features” -> “Turn Windows features on or off”.
- Navigate down through the tree of features: “Internet Information Services” -> “World Wide Web Services” -> “Security”.
- Enable “Basic Authentication” and click “OK”.
If you’re running a server flavor of Windows you’ll have to update the “Web Server” role instead:
Make sure to close and re-open IIS Manager afterward.
3. Enable Basic Authentication in IIS
Under the application, click “Authentication”, right-click on “Basic Authentication”, and click “Enable”. Make sure you enable “Basic Authentication” under the application, not the site. Setting it on the site will be ineffectual.
4. Login to your TFS using the tfx tool
C:\>tfx login --auth-type basic TFS Cross Platform Command Line Interface v0.3.20 Copyright Microsoft Corporation > Service URL: http://localhost:8181/tfs/DefaultCollection > Username: yourdomain\dustin.oprea > Password: Logged in successfully
5. Upload task
I tested using the “XLD” task, here:
Unzip and install by passing the directory path:
tfx build tasks upload --task-path xld
Now, if you go to your list of release tasks (where the XLD task ends-up), you’ll see it: