...
- Java: we use the Java version 1.6 JDK; there are a wide variety of packagings and installation methods if you don't already have it; ask the net about this one. Make sure your JAVA_HOME environment variable is set correctly. (On isda-build1, set JAVA_HOME=/usr/java/jdk1.6.0.)
- Subversion: if "svn --version" results in "command not found", you need subversion. Again, packagings vary; your operating system may be able to get it for you, or download it from http://subversion.tigris.org.
- maven: if "mvn -version" results in "command not found", you need to download the latest version of maven (currently 2.0.7) from http://maven.apache.org/download.html and install it locally, making sure to add maven's bin directory to your path.
- Repository access: if "svn ls svn+ssh://svn.mit.edu/zest/thalia" doesn't do something useful, you can't check out the code; you need to be in the zest-cvs moira group to access the repository.
- For the UI build only: if "lzc --help" doesn't give you useful help information for the OpenLaszlo compiler, you need to install version 4.0.2 from http://www.openlaszlo.org; this is hairy enough that it's been split off into a separate wiki page: OpenLaszlo. If you're on isda-build1, just make sure /home/lps-4.0.2/bin is in your PATH.
- On isdabuild1, isdasnap's maven settings are in ~isdasnap/.m2 . This includes settings.xml, which you'll need for maven deployments.
BUILD PREP
- Log in to isda-build1.mit.edu
...
- as the isdasnap user. Any test, staging, or production build is built as user isdasnap on isda-build1.mit.edu . This ensures we are installing identical executables in all environments. To ssh in, you must be in
...
- isdasnap 's .k5login file.
...
- Check out the source code:
svn checkout svn+ssh://username@svn.mit.edu/zest/thalia
(Note the revision number reported; you'll want it later to confirm the release.)
...
- Note that the front end code is in thalia/ui/trunk
...
- , while the back end code is in thalia/ime/Trunk.
...
BUILDING THE FRONT END
N.B #1.: These instructions replace the old interactive build using the OpenLaszlo server's dynamic compilation facilities.
...
- For a release, create the release branch:
svn cp ui/trunk ui/branches/thaliaUI<version>-sprint<num>
...then build the .swf files that comprise the UI:
cd thalia/ui/branches/thalia<ver>-sprint<num>
mvn clean compile
- Alternatively, if you just want to build the UI locallyfrom the trunk:
cd thalia/ui/trunk
mvn clean compile
The .swf files will be in the newly-created (by Maven) target subdirectory.
...
- For a release, create the release branch:
svn cp ime/Trunk/thalia ime/Branches/thalia<version>-sprint<num>
- If you need to include updated flash files for the UI, do one of:
cp <ui build target>/*.swf thalia/ime/Branches/thalia<ver>-sprint<num>/src/main/webapp
...or, if on isda-build1, include -Dincludeui=true on the maven command line below before or after environment selection- Copy the files manually.
- Invoke the IME build with the -Dincludeui=true option; this will copy the compiled and uncompiled OL code (the IME needs some of each!) from, in order of preference:
- The path specified with the -Duipath=/some/path/with/target/and/src/ui/directories option.
- The build products from the UI trunk which are part of the same checkout (../../../../../../ui/trunk/target)
- The automatic trunk build product directory (only meaningful on isda-build1).
- Make a clean build of the .war file:
cd thalia/ime/Branches/thalia<ver>-sprint<num>
mvn clean package -Denv=prod1
This will create or update the target directory and add the file ROOT.war . Please note that the Thalia maven build has multiple profiles:- If you want a development deployment (to thalia-dev.mit.edu), use -Denv=dev.
- If you want to choose the test profile, use -Denv=test1 or -Denv=test2. (When packaging, test1 and test2 are exactly the same. When deploying, test1 deploys to isda-thalia2 and test2 deploys to isda-thalia11.)
- If you want to choose the production profile, use -Denv=prod1 or -Denv=prod2. (When packaging, prod1 and prod2 are exactly the same. When deploying, prod1 deploys to isda-thalia5 and prod2 deploys to isda-thalia8.)
- N.B.: Part of the profile definition is in thalia/ime/Trunk/thalia/pom.xml under the profiles section; it specifies which servers to deploy to in each environment. Part of the profile definition is in thalia/ime/Trunk/thalia/src/main/filters*.properties files; it specifies the alfresco server address/port and alfresco passwords for user and admin. To change the development environment, edit dev.properties. To change the test environment, edit test.properites. To change the prodution environment, edit prod.properties.
- If you're doing a release and the build completed without error, commit the branch:
svn commit
- Deploy the war:
- Check that it's ok to deploy. Start with the thalia-talk@conference.mit.edu jabber chat. If deploying to QA, check in with the QA contractor in thalia-qa@conference.mit.edu. If deploying to production, you will already have coordinated the downtime with asst@mit.edu and isda-ops@mit.edu so they will not be alarmed when nagios reports the Thalia failure.
- There are two ways to deploy: one through the web, and one via maven. See the DEPLOYING WITH MAVEN or DEPLOYING VIA THE WEB INTERFACE sections following.
...