Versions Compared

Key

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

...

  • A unified code repository – the team must have access to shared code (team sharing, SVN)
  • Daily Frequent commits – every developer commits daily frequently to the repository so changes are incremental
  • Commits are built – when the code is committed by a developer, the software is built to show it is functional.
  • Builds are automatically tested – When the code is built, unit tests are performed, so if errors are found in a unit test, the developer can correct those errors immediately.
  • Results are available to everyone – if a build breaks, everyone can see where the issue lies and what needs to be done to fix it.
  • Successful builds are deployed immediately (automated deployment) – this ensures that the latest software is available to everyone in the team (product owners, testers)

...

With these principles in mind, the developer's role in the continuous integration process can be summarized as follows. Developers should:

  • Commit their code AT LEAST once a day or soonerfrequently.
  • Review the results of unit testing, and if unit testing fails on their commit, fix the issue as soon as possible.
  • Update their workspaces before starting each day to get changes from others in the team.
  • Write test scripts for unit testing (unless this is the responsibility of the testing team.)

...

As CruiseControl and Servoy are both Java driven applications, they share some Java technologies, and by default, share port configurations as well. If you plan to run CruiseControl and Servoy Application Server on the same machine, port changes will need to be made one application or the other in order for the applications to work properly.
NOTE: only one or the other needs to be modified, not both.
Changing ports for a Servoy Application Server installation is detail here (ADD LINK).
To change port configurations for CruiseControl instead, modify the wrapper.conf file found in the CruiseControl main folder. See the section below

Code Block

Application parameters. Add parameters as needed starting from 1

...


wrapper.app.parameter.1=CruiseControlWithJetty

...


wrapper.app.parameter.2=-webport

...


wrapper.app.parameter.3=8080

...


wrapper.app.parameter.4=-jmxport

...


wrapper.app.parameter.5=8000

...


wrapper.app.parameter.6=-configfile

...


wrapper.app.parameter.7=config.xml

...


wrapper.app.parameter.8=-rmiport

...


wrapper.app.parameter.9=1099

Note that parameter 3 and parameter 9 are conflicts with Servoy Application Server default ports. Change these ports to any other available port on the machine.

Using CruiseControl with Servoy

In regards to Servoy projects, CruiseControl is used to fill the following needs in our software factory

  • Checking the SVN for new versions of the software, or building the software when the SVN is committed.
  • Running the unit tests against the project.
  • Providing a new build of the software for testing and availability.

CruiseControl is very flexible in how it can be configured and the methods and strategies can differ depending on a variety of factors. Rather than explain everything that can be done with CruiseControl In the case of using CruiseControl with Servoy, we utilize the ability to run ANT scripts via CruiseControl.  With these ANT scripts, another tool in Servoy Developer exports the workspace into a .servoy file, the runs another ANT script runs a smart client based test client that will import into a repository and run unit tests.  Finally, if unit tests are passed, another export is created to be imported into a test application server.

Rather than explain everything in detail that can be done with CruiseControl and a Servoy project, it is more beneficial to provide an example of CruiseControl and the supporting applications configured for a continuous build server.
The  The Building the Servoy Software Factory section will cover in detail setting up a continuous build server for a Servoy project.

...