This is an old revision of the document!
The Jenkins build system is installed on dev.agtek.com. It's a Java application running within the Tomcat application environment. The build system for Agtek will perform continuous integration builds for Android components, as follows:
and Server components as follows:
Jenkins will kick off a build (usually within 15 minutes, configuration time) when new code is checked into the associated repository.
Each Android project will checkout two repositories; AGTEK_Lib and the associate application repository. A script, AGTEK_Lib/jenkins.sh, does the heavy lifting of running the build for each part of the application. For most part, jenkins.sh will set build numbers (from Jenkins itself), and runs the Android “assemble” task. The build fails if no APK is produced.
Once the build succeeds, the corresponding APK and mapping file are copied to /var/www/html/build/SmartSuite-nightly.
When the product has been tested and is accepted for distribution, the APK and mapping files are copied (manually) to /var/www/html/build/SmartDirt (btw: historical reasons for the name, nothing fancy). Old release copies should then be copied to /var/www/html/build/SmartDirt/old.
The AccessServer is built via a regular ant script, and all the code is contained in a single repository. Typically the build system is building from the branch “master” and seldom builds from release branches.
Each build run also runs the JUnit unit tests. A failure of the unit tests will cause the build to fail.
When the build is ready for roll out, the build user must capture the built copy of the server. This is done with the following commands:
ssh -P 23456 build@dev.agtek.com # after completing the log-in snap
The “snap” script will copy the release items from the latest build, AND lay a versioned/dated tag on the branch. The “snapped” server components will be in a directory called something like “server-2018-10-18”.