Versions Compared

Key

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

Repositories

A repository in Continua CI is a reference to an external version control system.  It Version Control System (VCS) that provides a way for Continua CI to interact with that VCS. Adding a repository to Continua a repository and assigning it to a Configuration allows the user to make use of that repositoriesthe VCS's content in other parts of Continua, for example, assigning it to a Configuration and then referencing it in Stages & Actions. Once a repository has been assigned to a Configuration, its changesets are tracked and displayed on various pages:

...

Continua CI. Some examples of using a repository in Continua CI include:

  • Automatically trigger a build whenever a check-in occurs in a tracked VCS.
  • Referencing components of the VCS in build actions.
  • Monitor and record changes in the repository. These include changesets that triggered a build or changesets that have been added since the previous build was run.
  • Show changesets that were committed by the current user. For a user to correctly view their own changes, they will first need to configure their Repository User Mappings.
  • Link a repository to an Issue Connector. This allows you to automatically link repository check-in comments

...

  • to an issue in your issue tracking system.

Triggers

A Trigger is a Continua CI feature that waits for certain events to occur, when they occur the Configuration the trigger is assigned to is executed. A trigger can be setup to execute the Configuration when a check in is made to a specified repository or at a certain period in time.

...

A trigger is attached to a configuration and is set to listen for certain events to occur. If a matching event occurs, the trigger executes a build on its configuration. Triggers can listen for the following events:

  • A change being made in a repository.
  • Another configuration completing its build.
  • Firing a build at a certain date or time.

Repository Caches

Unlike some other

...

continuous integration servers like FinalBuilder Server, Continua CI manages the

...

retrieval of your source code.

...

When you create a repository in Continua CI, it points the server to your VCS and you need to specify how often the Continua server polls the VCS for changes.

Continua maintains several caches of your source code: one on the Continua server and one

...

on each agent that has previously used that repository.

...

 When Continua detects a new commit/check-in/changeset in your repository, it updates the 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

...

code base

The cache isn't just a bunch of files - it is versioned. This makes it easy for us to get the right version of the source to build. For example, lets say you have a Repository Trigger with a quiet period of 1 minute (, which means that is, the build will wait 1 minute after its triggered to see if any other changes come in). Given the following steps:

  1. A new commit (Change1) is detected, which queues up a new build.  
  2. just Just after the quiet period has ended, (and the build is just starting) a new change (Change2) is detected in your repository, which is automatically sync'd to all of the agents. 
  3. now your Your build starts running on an agent

...