Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Continua maintains several caches of your source code: one on the Server server and one of each Agentagent that has previously used that repository. When Continua detects a new commit/check-in/changeset in your repository, it updates the Server server cache, then each agent that has that repository cached updates its cache from the server. This means that when it's time to run a build the source is most likely already on the Agent. 

The first time that an agent uses a repository its cache needs to be created. Depending on the size of your source, this can mean that the initial stage on that agent can take significantly longer than usual. After the cache is created though, keeping it updated is usually very quick (unless you add large binaries etc).

Building the right codebase

...

Each build has its own workspace: a directory that is sync'd between the Continua server and any agents the build runs on. It contains things like a serialized copy of the build's variables, any source files that are changed during the build, any artifacts that are registered, and the build log. When a build is run on an agent, the correct version of the source is copied from the cache into the workspace. Using a copy means that we can run multiple builds of the same stage, at the same time, on the same agent without any conflicts.  This is very useful if you set up feature branch builds.i

Although a copy of the source is placed in the workspace on the agent, we don't sync this back to the server. The performance cost of moving a potentially large amount of data around for every build is too high. Instead, we re-apply the changes you make to the source during the build. So again, if your Build stage runs on Agent1 and produces a bunch of assemblies, when the Installer stage starts on Agent2 those changes will be re-applied to the source folder, and you can reference them as if you had just build them.