6.0.0-git
2024-05-06

Diff for Doc/Dev/CI between 6 and 7

+Continuous Integration

The [http://ci.horde.org continuous integration system for Horde] constantly monitors the integrity of the Horde build, does quality control checks, and publishes the resulting data.

The system is based on [http://hudson-ci.org Hudson] and uses the [http://github.com/wrobel/php-hudson-tools PHP Hudson tools] as build environment.

You should be able to get the same system up and running in no time on your local machine.

++Prerequisites

For the following to work there are a few elements required on your machine:

* Make
* PHP with the xdebug extension
* PEAR
* Java (Sun JDK)
* Ant

++Installation

Clone the [http://github.com/horde/horde-support Horde Support] repository first:

<code>
git clone git://github.com/horde/horde-support.git
</code>

As a first step we will install Hudson and all the plugins we need to cater for the tools used when running the build:

<code>
cd horde-support/ci-hudson
make install
</code>

Now you can start Hudson (it will listen to the default port 8080 unless you don't modify anything in {{etc/hudson}}.

<code>
init.d/hudsonmake start
</code>

The command should start the Hudson daemon with no output. Check that Hudson is running now and can be reached via the network (e.g. {{localhost:8080}}).

At this stage you cannot login yet. You need to disable the security feature at least temporarily in order to enter the system. Once you set the security setting appropriate for your site you can turn the back on back on.

Edit {{workdir/config.xml}} and ensure the {{useSecurity}} setting is set to {{false}}:

<code>
<useSecurity>false</useSecurity>
</code>

Now restart Hudson on the command line with:

<code>
init.d/hudson start
init.d/hudson stop
</code>

Once the system is up again you can freely configure it. After you modified the security settings to your liking you need to restart Hudson again. This time Now you should be able to do thislogin as a standard user from within Hudson ("Manage Hudson" -> "Reload").your system.

At this time none of the jobs will have been build. To start the process all you need to do is to trigger the {{php-hudson-tools}} job once.

++Adding new jobs

Adding a new job is simple. Insert the framework package name in the {{Makefile}} within {{horde-support/ci-hudson}}:

<code>
JOBS=Autoloader \
     Argv \
     Constraint \
     Controller \
     ...
     New_Job \
     ...

In order to prepare this job you now need to setup the basic configuration for it by running

<code>
make job-New_Job
</code>

Restart your Hudson from within Hudson ("Manage Hudson" -> "Reload") and configure both the {{horde}} and the {{php-hudson-tools}} job to trigger the new job. Trigger the new job or {{horde}} now and verify the job builds.

If it does you should copy the {{.gitignore}} file from another job to the directory of the new job. Finally you can commit the new configuration to the {{horde-support}} repository. Ping [mailto:wrobel@horde.org Gunnar] to get the job included on [http://ci.horde.org ci.horde.org].

++ci.horde.org

As a Horde developer you should be able to log into Hudson via your usual Horde developer credentials. You have full rights to start/stop builds and administrate the Hudson installation.

++Problems

+++I cannot login

Try to disable the security feature at least temporarily so that you are able to enter the system. Once you changed to a security configuration that should allow you to login to the system you can turn the protection back on.

Edit {{workdir/config.xml}} and ensure the {{useSecurity}} setting is set to {{false}}:

<code>
<useSecurity>false</useSecurity>
</code>

Now restart Hudson on the command line with:

<code>
init.d/hudson start
init.d/hudson stop
</code>

Restart your Hudson from within Hudson (see above) and configure both the {{horde}} and the {{php-hudson-tools}} job to trigger the new job. Trigger the new job or {{horde}} now and verify the job builds.

If it does you should copy the {{.gitignore}} file from another jobAfter you modified the security settings to your liking you need to the directory of the new job. Finally you can commit the new configuration to the {{horde-support}} repository. Ping [mailto:wrobel@horde.org Gunnar] to get the job included on [http://ci.horde.org ci.horde.org].

++ci.horde.org

As a Horde developerrestart Hudson again. This time you should be able to log into Hudson via your usual Horde developer credentials. You have full rights to start/stop builds and administrate thedo this from within Hudson installation.("Manage Hudson" -> "Reload").