First of all, we are talking about TFS 2015 build tasks, TFX tool and powershell tasks.
What do you need?
- TFX installed
- json file
- ps1 file
- full TFS access
How to authenticate with TFX:
I’m using basic authentication,
tfx login –auth-type basic
It will ask for:
Once authenticated, go to the folder where your files are and execute this command to push all to the server:
tfx build tasks upload –task-path .\
The json file
Use another task as base for your new task, you must set a new GUID for your new task, it will identify your task. You must increase the version before each upload. And you can define the GUI in this file.
Hi all, one in a while we need to do some changes within our TFS Build process template, and a easy way to do it is using powershell in pre or post build command.
I will add a sample code to find the current workspace and then you can program what you need from this point on.
# load the needed client dll’s
#here I’m considering that your workspace is one folder up
$rootBuildPath = (get-item $PSScriptRoot ).parent.FullName
#here I get the workspaces set for that local folder
$workspaceInfos = [Microsoft.TeamFoundation.VersionControl.Client.Workstation]::Current.GetLocalWorkspaceInfoRecursively($rootBuildPath)
#here I can get the tfs collection
$tfsCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($workspaceInfos.ServerUri);
#then I can get the version control service
$vc = $tfsCollection.GetService([type] “Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer”);
#and for example, download something
$fileXml = Join-Path -Path $rootBuildPath -ChildPath “file.xml”
$itemToDownload = $vc.GetItem(“$/teamProjectName/file.xml”, [Microsoft.TeamFoundation.VersionControl.Client.VersionSpec]::Latest);
It works for all xaml builds and also for the new build system.
That’s a really common task when it comes to PowerShelling. Shall we manipulate some config files right after deploy it, preparing it to have the correct values, automatically?
At a first glance it seems to be difficult, but it’s actually completely straightfoward.
Take a look on these links and do wherever you want with your config files:
Now you just need to use your creativity.