Introduction

This is a check list for what must not be forgotten when making a release.

Releasing can happen to either an acceptation or production server.

Server setup

  1. Use the RPM's to install MySQL and Tomcat on the server. Create a startup script in /etc/init.d based on /etc/init.d/skeleton if there is no RPM. Verify that both the db and the webserver are enabled for the default runlevel so they start up automatically on a reboot.
  2. Adjust the JAVA_OPTS of the webserver to use a maximum memory heap of -Xmx512m or more. See Build setup.
  3. Disable listing of directory contents when no welcome file is available.

    How you go about doing this varies depending on the servlet container being used. Instructions on how to configure Apache Tomcat can be found here. Jboss generally uses Apache Tomcat so it should be the same there. As far as other containers like Resin and Jetty are concerned you should consult their respective manuals.

For the accepatation machine it is recommended to remote deploy from the cruisecontrol machine because the cruisecontrol user there has the private key credentials to log in into the acceptation machine.

Releasing: distribution creation

  1. Go to the acceptation javacareers checkout directory. On the CC machine this should be /home/cruisecontrol/acceptation/javacareers. Notice that it is seperate from the normal CC checkout dir.
  2. Update from CVS with cvs update -dP (make sure you have done a ssh-add earlier).
  3. Edit #/globalmavenconfig/build.properties to set javaCareers.productionMode = true. For an acceptation release, also set: javaCareers.url = http://extranet.jcs.be/ and javaCareers.mailHost = mail.jcs.be
  4. Build the war with maven javacareers:build javacareers:cleanBuild. The version should have been changed, so a direct javacareers:clean won't work in maven 1.
  5. Bundle the scripts to migrate the database from the latest version to the new version if there are any. Call it javacareers-version-migrationscripts.zip.

Releasing to acceptation

  1. After building the war, deploy it with maven javacareers:remote-deploy (make sure you have done a ssh-add earlier).
  2. Run any migrationscripts on the server if there are any.
  3. Restart the server if crashed. Delete the exploded directory.

Releasing to production

This part will be usually done by the SysOps of the production server.

    1. Unwar the war.
    2. Edit /WEB-INF/classes/javacareers.properties and adjust settings like javaCareers.url and javaCareers.mailHost.
    3. Edit the job profiles and the RSS feeds.
    Unwar the war, edit /WEB-INF/classes/javacareers.properties and war it again.
  1. Stop your server.
  2. Deploy the adjusted war file on the server.
  3. Run any migrationscripts on the server if there are any.
  4. Start your server.
  5. Test the webapp.
    1. Login as admin/admin.
    2. Change the e-mail adres and password of the admin profile.
    3. Edit the job profiles and the RSS feeds.

After releasing

  1. Tag the project in CVS as javacareers_version, but replace dots (.) in the version with underlines (_).
  2. Release the version in JIRA.
  3. Undo what you needed to change in #/globalmavenconfig/build.properties
  4. Update #/globalmavenconfig/project.properties's version to the new version.
  5. Go have a drink.