44 lines
2.5 KiB
Plaintext
44 lines
2.5 KiB
Plaintext
!3 Build process
|
|
#
|
|
The Ant script ''build.xml'' provided in the top-level directory of the distributed release defines the build process.
|
|
|
|
This is organised for a Hudson (http://www.hudson-ci.org) pipeline of ''projects'' for continuous integration. These are defined in Hudson as follows:
|
|
|
|
* ''fitlibrary.build'' - polls git for a change and runs one Ant target:
|
|
* ''jar'' - compiles and creates ''fitlibrary.jar''. It copies this jar into the ''!-FitLibraryWeb-!'' directory. See below for directory-structure assumptions.
|
|
|
|
* ''fitlibrary.specifications'' - follows from the previous stage (if successful). Runs two Ant targets:
|
|
* ''delete-batch-runner-results-dir''
|
|
* ''batch-run-specifications'' -- runs the ''!-FitLibrary-!'' specifications in batch using ''!-FitLibraryRunner-!''
|
|
|
|
* ''fitlibrary.create.release.zip'' - follows from previous stage. Runs Ant target:
|
|
* ''create-release-zip'' - Copies all files for release into a separate folder and zips them up
|
|
|
|
* ''fitlibrary.check.release'' - follows from previous stage. Runs Ant target:
|
|
* ''release-check'' - runs the ''!-FitLibrary-!'' specifications in batch again from an unzipped copy of the release, integrated with a fresh copy of ''!-FitNesse-!''
|
|
|
|
* ''fitlibrary.final.release'' - follows from previous stage. Runs Ant target:
|
|
* ''final-release'' - Renames the zip created from the ''fitlibrary.create.release.zip'' stage to include the date. Within Hudson, ''final.release.dir'' is changed so that it appears in win7 space.
|
|
|
|
All of these Hudson projects share the workspace of ''fitlibrary.build''.
|
|
#
|
|
!3 Directory Structure Assumptions
|
|
#
|
|
The build process for ''!-FitLibrary-!'' assumes two git projects that are held in the same directory, as follows:
|
|
|
|
* ''fitlibrary''
|
|
* ''fitlibraryweb''
|
|
|
|
This allow the build process to copy any ''fitlibrary.jar'' update into ''../fitlibraryweb/fitnesse''.
|
|
|
|
Note that with the Hudson pipeline, this happens within Hudson's copy of the files when it clones them from git (which, currently, is unnecessary).
|
|
|
|
It is necessary to run the first stage, at least, of this process directly within the git folder so that:
|
|
|
|
* ''!-FitNesse-!'' and ''!-FitLibraryRunner-!'' can be used to test changes to ''!-FitLibrary-!''.
|
|
* ''!-FitNesse-!'' and ''!-FitLibraryRunner-!'' can be used to test ''!-FitLibraryWeb-!'' with the latest ''fitlibrary.jar''.
|
|
|
|
It is assumed that after the build succeeds, after any change to ''!-FitLibrary-!'':
|
|
|
|
* The updated ''fitlibrary.jar'' that was auto-copied into ''fitlibraryweb'' will be committed
|
|
* Thus kicking off the ''fitlibraryweb'' build. |