Login | Register
My pages Projects Community openCollabNet

A guided tour of Sin
 
Click for larger size  

After extracting or installing a Sin distribution, run Sin Setup to configure your Sin system. The process varies a bit depending on which Sin components are installed. There are three possible installation types: Integration Manager, Integrator, or both. The first page provides an interface to prepare for upgrading or uninstallation of Sin. Prepare for upgrade will stop any Sin services that are running. Prepare for uninstallation with do the same and remove any generated configuration files so they are not left behind.

 
Click for larger size  

You have the option to import a previous Sin configuration. This is very useful when upgrading an existing Sin installation since it allows you to upgrade and reconfigure your Sin installation within seconds. Specify the path to an exported Sin configuration and click Import and voila - your Sin configuration is loaded and preset in the next configuration dialogs.

 
Click for larger size  

To do its chores, Sin need to have both read and write access to the repository. Sin accesses the repository like any normal Subversion user so we need to give it a username and password for a Subversion account in the repository. Don't forget to register this account with the repository. Since the repository must always be located on the same machine as the Sin Integration Manager (or accessible from it via file sharing), it is best to use the file:// access method for better performance of the Sin system.

 
Click for larger size  

Sin does a lot of manipulation of data and it needs to be have a place to store this data during operation. If an installation has both the Integration Manager and Integrator components then these can be configured to use the same directory for this purpose.

 
Click for larger size  

Sin depend on Subversion for its operation. Also a custom verifier must be provided. This can be the build tool that is used to build the codebase or it can be a simple script that return with exit code 0 on success and a non-zero exit code on failure.

 
Click for larger size  

The Sin system may (directly or indirectly) execute code committed to the repository and thus it is important that the Sin services run under an account which has minimal privileges to prevent the damages that could happen in case of an attack. Sin Setup can create a special low-privilege account for the Sin services to run under.

 
Click for larger size  

The Integration Manager and the Integrators communicate with each other using SOAP webservices. This means that there must be set up a SOAP webservice for both the Integration Manager and each of the Integrators in the Sin system, and there must not be a firewall between each of the Integrators and the Integration Manager which is blocking the SOAP requests.
Sin Setup can only set up virtual directories under the default website. To set up a separate website for the Integration Manager or the Integrators, use the Internet Information Services Manager in the Control Panel.

 
Click for larger size  

In case of errors in the Sin system, an email can be sent to an administrator.

 
Click for larger size  

Sin can optionally send out email notifications of commits that are merged to stable branches. Both a HTML email with color-coded changes for easy reviewing and a plaintext email with a listing of the changed files can be sent out by Sin. These emails are usually sent to a mailing list and then distributed to all developers.

 
Click for larger size  

Each Integrator can be configured to accept commands from an Integration Manager at a specific IP address. This can add to the security of the Sin system.

 
Click for larger size  

Sin Setup can be used to maintain the Integrator database. This database contain information about every Integrator in the Sin system.

 
Click for larger size  

An Integrator is given a name by which we can recognize it. For better security in the Sin system, the Integration Manager can be configured to accept responses only from a certain IP address. An Integrator can also be disabled if the Integrator machine need to be taken offline for maintenance or is otherwise inaccessible.

 
Click for larger size  

Sin Setup can be used to maintain the account database. This database contain information about developers who are registered with the Sin system.

 
Click for larger size  

Developers are notified by email when the Sin system could not validate a change and it reverted the change in the repository. The email address to use is entered in this dialog. If a developer has an account in the repository, but not an account in the Sin system (or it is disabled), then the Sin system will behave as normally, except that no email notification to the developer is performed in case a change which was committed by the developer, could not be validated.

 
Click for larger size  

Write the needed configuration files and restart the Sin services.

 
Click for larger size  

You can choose to export the configuration to a file. This is useful to quickly reconfigure or upgrade the Sin system.

 
Click for larger size  

And we're done with the set up.

 
Click for larger size  

The Sin manager displays the current state of the Sin system. It is possible to see which changes were recently processed, which changes are currently being processed and which changes are scheduled to be processed. Unlike many other Continuous Integration systems, developers are not normally supposed to be looking at this page to know whether or not the latest code will build. This page is merely there for developers to see when their changes are likely to be processed and to help diagnose any problems there might be with the Sin system.