------------------------------------ Jenkins Notes ------------------------------------ I) Installation: 1. Download Jenkins("Jenkins.war") using "curl http://mirrors.xmission.com/jenkins/war/1.498/jenkins.war -o jenkins.war" The file Jenkins.war will be downloaded onto the current directory. 2. Start it up using "java -jar jenkins.war --httpPort=$SOME_PORT_NUMBER" or "java -jar jenkins.war --httpPORT=$SOME_PORT_NUMBER>some_log.log 2>&1" if you want everything logged. Currently, it is running on crit.brlcad.org:8080 ********************************************************************* II) Configuration: Now this is easy in Jenkins, since everything is GUI-based and can be done on the Jenkins configuration page itself, unlike Buildbot, where everything had to be scripted in a master config file. 1. Go to "Add Job" 2. You will be presented with a configuration page where you'll need to enter a) the URL to the project's code base, b) the directory the source will be downloaded to, c) the commands that need to be executed by Jenkins to build the project, d) the refresh interval of the changes-detector and e) build schedule in their respective text fields. 3. Save all the changes and the build will start. ********************************************************************* III) Security: Security can be managed on the "Global Security" page. Go to Jenkins home -> "Manage Jenkins" -> "Global Security" In Jenkins, initially, the security status is "Anyone can do anything." But this can be changed in the security settings. 1. Under "Global Security", Enable "Logged-in users can do anything." Also, Enable "Jenkin's own user database" under the tab "Security Realm." This basically means that Jenkins will keep the list of users in it's own database. Also, uncheck "Allow users to sign up" because I don't think we'd want random people signing up and changing stuff. Initially, a sign up page is presented to the person who is doing all this(in our case, me.) But after that, he becomes a user and only he can Add/Delete other users. 2. Go back to security settings. Look for "Users list." Here, you can add or delete other users. It's a simple click-and-sign-up process. Note that all users in this list are given access to starting/stopping builds, changing settings, etc. ********************************************************************* IV) Current Users: Currently, there are two users: 1. Skriptkid 2. BRL-CAD I created both of these. The login password for BRL-CAD is "Brlcad!" and username is "brlcad" and this account is for use by anybody at BRL-CAD. So you can add new users and remove me if you want. ********************************************************************* V) Current build process: The source is downloaded to the directory "/usr/home/gciscriptkid/.jenkins/jobs/BRL-CAD/workspace" The build directory is "/usr/home/gciscriptkid/.jenkins/jobs/BRL-CAD/.build" The current build process is scheduled to run every 6 hours and the refresh interval to check for updates is et to 30 minutes. The build is done whenever there is an update and periodically every 6 hours. The configuration is to: 1. Remove any previous build --> "rm -rf .build" 2. Make a new build directory --> "mkdir .build" 3. Change directory --> "cd .build" 4. Run cmake --> "cmake ../workspace -DBRLCAD_BUNDLED_LIBS=ON" 5. Run make ---> "make" 6. Benckmark ---> "make benchmark" 7. Regress ---> "make regress" This has been done looking at what an admin(I'm guessing Sean) has done on Buildbot. ********************************************************************* VI) Miscellaneous: Total setup time: 1 hour. Credits: Moin Nadeem's blog, for getting me started on a simple manner. What might be needed next: Starting Jenkins as a background service.