E2Stream is built through a combination of apache ant (http://ant.apache.org/), and Jenkins (http://jenkins-ci.org/). You don’t need to use Jenkins, but it does help to keep things simple
There are three ant build scripts, One in the E2Stream project, and two in the E2Stream-Installer, (one in assets, one in installer) project.
If using Jenkins, you’ll want to create a build job called E2stream.
1. Set Version Parameter
To build a release version, the scripts use an environment variable:
setversion
to hold the version number. This has to be a Major.Minor version number in order to prevent issues within the smart TV SDK, e.g. 6.3 This is done through Jenkins by having a parameterised build, with a text parameter named ‘setversion’, but could simply be an environment variable passed to ant if not using Jenkins.
2. Source Code for App
Next get the source for the Smart TV app from github using the following URL and the master branch (or branch of your choice!)
https://github.com/dpembo/e2stream
3. Set the Version Within the App
Now invoke the ‘version’ target in the build script. This modifies files within the build to contain the version number specified in the setversion parameter
4. Clear Debug
To build a release build, next you’ll want to ensure that the debug settings are not present, therefore invoke the ‘clearDebug’ target in the build script to do this.
5. Build App
Next call the ‘dist’ target to package up the app. This creates a zip file called ‘e2stream.pkg’ which excludes the build script, eclipse project files, and any .svn markers (code was previously in a google code subversion repository!)
6. Parameterised Trigger of E2Stream-Installer Build
Using Jenkins and a plugin, a parameterised build of the E2Stream-installer job is run next, passing the ‘setversion’ property.
7. Source code for Installer
Get the source code for the installer from the following github repository and branch of your choice:
https://github.com/dpembo/e2stream-installer
8. Copy the e2stream.pkg to the installer build directory
This can be done with a copy, or by invoking the ‘jenkinsCombine’ target of the ant script within the e2stream-assets folder/project from the installer repository.
9. Compile and JAR the assets
Next, compile the java code within the assets, and copy all the assets (html/css/js) to a location along with the e2stream.pkg (ant target ‘dist’), and jar these into e2streamassets.jar, and move to the ‘installer’ project. (ant target ‘moveToInstaller’)
10 Build the Installer
Finally build the installer (ant target ‘dist’ in the installer build.xml). This compiles the installer, and creates an executable jar e2stream-installer.jar which containas the e2streamassets.jar. Finally, copy the readme.txt and .cmd file, then zip to creae a release zip file
phew!
Screen shots for Jenkins at a later date!