In FinalBuilder, I can achieve separation of code bases by configuring multiple TFS Workspaces.
For example: $/tfsCode/Branch1 can be mapped in
Workspace1 to c:\Branch1_1 and also mapped in
Workspace2 to c:\Branch1_2.
In FinalBuilder I can use an action to get latest code by supplying windows path, i.e. c:\Branch1_1 or c:\Brnach1_2 in the action itself. This way, I can run 2 different builds from same code base (repository) simultaneously.
How is Continua CI does downloading from repository? Does it somehow downloads code from repository directly into Continua Workspace or code goes initially into workspace configured in TFS Team Explorer? The reason for asking is because we have other process that runs on this server and it uses TFS workspace. Eventually we will integrate it into Continua.
And how do I access the code base in action configurator so I can use relative path? For example, I need to delete or create a file between MS Build actions and then make it available for unit testing.
Thank you
PS: some of it explained in here - I saw this https://www.finalbuilder.com/support/forums/aft/16883
Hi Anatos,
When Continua CI polls each repository, it downloads new and changed files to a “repository cache” folder under the Continua Share folder on the server. e.g. C:\CIShare\Rc\50e73725 where C:\CIShare is the share folder specified when running the installer and 00e73725 is the first 8 characters of the repository id. Note that this folder is for internal Continua use - we don’t recommend accessing the folder with other processes as this can cause issues.
We don’t map a TFS workspace as this requires making changes to your repository. Instead, we compare file hashes to work out which files have changed.
The downloaded files are then committed to a Mercurial repository. When a build runs, any changes in the Mercurial repository in the server repository cache are pulled to a duplicate Mercurial repository on each agent. e.g. C:\CI_AWS\Repos\50e73725. (also for internal use only). We use a Mercurial repository here as an efficient way to transfer only the file differences for each changeset and also as a way to store and retrieve revisions.
The files related to the relevant revision are then checked out from the agent repository cache to the build workspace on the agent ready for use in the build. e.g. C:\CI_AWS\Ws\589322 where 589322 is the build id. The files are actually checked out to a location under the build workspace according to the repository rules. e.g. C:\CI_AWS\Ws\Source\TestRepo.
You can use the expression $Workspace$ in actions which expands to the root of the build workspace on the agent e.g. C:\CI_AWS\Ws\589322.
You can also use $Source.RepoName.Path$ or just $Source.RepoName$ which expands to the folder that the repository files are checked out to under the build workspace. e.g. C:\CI_AWS\Ws\589322\Source\TestRepo.