CC's Build System
Other Information
|
|
Adding A Project To The Process
Once a project has been updated and configured to run a Maven build,
there are a number of manual steps required to add a project to the
automatic build and deploy process. They are outlined below and refer
to some of the information in the Automatic
Repository Building page:
- The developer should make sure the project can be built
with
Maven. If not, use
another project as a guide and copy the project.xml to your project to
be added. It is important that the new project extends the main
project.xml file in Projects/Builds
or many of the customized goals and properties defined in that
directory will
not be inherited. Also, if there is any non-CC code, it needs to be
evaluated for any licensing issues. If there is java code that already
has a license, use the find command on the server to create an
.exclude_license at the top of the project tree (in the same directory
as the project.xml file), ie: find .
-name "*.java" > .exclude_license and check the file into CVS.
- Modify the loginfo
file from CVSROOT as described in the Automatic
Repository Building page.
- Modify the build scripts. This is quite involved as it
requires changes to two scripts and the creation of a bare-bones
project.xml script.
- Modify the ViewCVS links on the web server. This can only
be done by a privileged user
- Modify the softwaredocs. Update the include file, create
a folder for the project with the same name as the artfactId with an
index file for project. If updating the main index
file as well, modify the main template.html
file.
- If the project has thirdparty software, update the thirdparty documentation for
public
viewing in softwaredocs and non-public docs in CC's Confluence
wiki. Put
thirdparty source code in the Projects/thirdparty/source folder and the
thirdparty
binary in Projects/thirdparty. When the changes are committed, the
files will be put on the build server and md5'd. Make sure the
thirdparty
binary versions are in the form <thirdparty
name>-cc-<ccversion>-<thirdparty
version>.<extension>. The extension should usually be '.jar',
but it
doesn't have to be. Source files don't have naming conventions, but
most likely will be zips or tarballs.
User Interface
After using this system for awhile, I wanted to automate the addition
of a project to the process so it could save me some time and would
allow users to add their project without knowing all the steps
required. Below is a screenshot of the user interface:
The red numbers are not on
the
actual page, but are added here as markers for the descriptions that
follow.
- The Repository:
entry on the first line is the root of the CVS repository. It is
configurable on the server only.
- The Repository Module:
selection box has a list of all the buildable Maven projects in the CVS
repository. Some modules can be excluded from the search if configured
on the server.
- The User Doc Description:
is an area for developers to add a short description about the project.
This text will appear between <!-- Start Description --> and
<!-- End Description --> tags and will appear on the main index
page as a description. If a developer wants to put more information
about the project, they need to checkout the 'softwaredocs' module and
update the index.html page for the project.
- Hide Project: will
exclude the project from the main index page. This is useful for
testing or for internal projects that are not to be made available to
the public. If, at a later time, the project should be made available,
the 'include' file in the softwaredocs module can be updated.
|