A guided tour of Sin
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
In case of errors in the Sin system, an email can be sent to an administrator.
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
Sin Setup can be used to maintain the Integrator database. This database contain information about
every Integrator in the Sin system.
|
|
|
|
|
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.
|
|
|
|
|
Sin Setup can be used to maintain the account database. This database contain information about
developers who are registered with the Sin system.
|
|
|
|
|
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.
|
|
|
|
|
Write the needed configuration files and restart the Sin services.
|
|
|
|
|
You can choose to export the configuration to a file. This is useful to quickly reconfigure or
upgrade the Sin system.
|
|
|
|
|
And we're done with the set up.
|
|
|
|
|
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.
|