Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

1. Build initiated under designated JDK, on designated build server (currently JDK 1.5.0 on dev-tools2)
2. Build has required inputs: name of release, and name of existing module to be released
3. Build workspace is empty

Script = bleu/build-system/util/release_build.sh
Scripts used by build system are up-to-date (for correctness) and labeled (for repeatability):

1. Release is assigned a version, independent of the release name: a timestamp, suffixed by -release (e.g. 20070604134307-release)
2. Build system is tagged with the same timestamp, prefixed by Release- (e.g. Release-20070604134307), then checked out of CVS repository using the tag

Script = bleu/init.xml
Tools and properties used by build system are set up

...

4. Module source is tagged, then checked out of CVS repository using the tag
5. Invoke publish-release target of bleu/modules/category-name/module-name/build.xml

...

2. Recursive Release: Release main module and all the modules it depends on

...

2. Trigger the recursive release process, using the resolved ivy file, because the module may have dependencies which need to be released.

Scripts

bleu/modules/<category>/<module>/build.xml
bleu/modules/<category>/category.xml
bleu/build-system/module/common.xml
bleu/build-system/module/common-ivy.xml

Install

Checkout bootstrap script for install and invoke it, passing it the module name, version, branch, and instance (if instance=test). Upon completion of install, copy release metadata to Ivy repository.

/apps/registry/build-system/staging/<module>-test-install.sh (on build host) installs a TEST instance of <module>
/apps/registry/build-system/staging/<module>-install.sh (on build host) installs a UAT or PROD instance of <module>
These files are generated by bleu/ build-system/module/common-ivy.xml

Bootstrap: Check install host, set CVS options, load release metadata, start install of module

bleu/init.xml

Install module:

1. Checkout module

...

2. Note: 2a, 2b, and 2c are interleaved (not sequential)

2a. Perform steps common to all installs

  • Start logging install activity
  • Get instance (uat or prod)
  • Use Ivy to download zip containing resources necessary for the installation: install properties, configurations files, jsps, htmls, ... depending on the application type
  • Extract the zip in the module directory
  • Load install properties: since properties are immutable, loading in order of increasing scope allows specific cases to override general defaults.
    Some properties are set dynamically during the install, using Ant's token filtering mechanism. For details, see Install Tokens.
  • Use Ivy to download jars required by module (including the jar published by the module itself) directly in destination jar dir
  • Stop logging
Script = bleu/build-system/install/common.xml

2b. Perform install steps specific to this category
Files shared by modules in the category are collected in a shared module. That shared module, declared as an Ivy install dependency, is installed in this step.

Category

Shared module

regis

regis_admin

slog

slog_admin

web

web_configuration_tomcat6

xmldoc

web_configuration_tomcat6

Script = bleu/module/<category>/category-install.xml

2c. Perform install steps specific to this module

...