Jenkins CI Server: Difference between revisions
(jenkins on Windows) |
|||
Line 78: | Line 78: | ||
* similar setup to Jenkins on Ubuntu | * similar setup to Jenkins on Ubuntu | ||
* http://ci-win.solidcharity.com/ | * http://ci-win.solidcharity.com/ | ||
* the jobs OpenPetraBuildWin and OpenpetraBuildTestWin have their own OpenPetra.build.config file, stored in eg. | * the jobs OpenPetraBuildWin and OpenpetraBuildTestWin have their own OpenPetra.build.config file, stored in eg. C:\Program Files (x86)\Jenkins\workspace\OpenPetraBuildWin | ||
C:\Program Files (x86)\Jenkins\workspace\OpenPetraBuildWin | |||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
<project name="OpenPetra-userconfig"> | <project name="OpenPetra-userconfig"> |
Revision as of 21:02, 8 Haziran 2012
Ubuntu
- installed on Ubuntu 11.10 (Oneiric Ocelot)
apt-get remove apache bind9
Mono
- using Mono 2.10 for best support for c# 4.0 etc
apt-get install mono-runtime mono-xbuild mono-gmcs
- for msgfmt to work for the i18n, processing of language files, you need to run:
ln -s /usr/bin/gmcs /usr/bin/mcs
other development tools
apt-get install bzr doxygen graphviz sqlite3 postgresql libpg-java dos2unix fakeroot lintian nsis
setup SchemaSpy
- Download SchemaSpy_5.0.0.jar from http://schemaspy.sourceforge.net/
cd /var/tmp/OpenPetraBuild
vi /etc/postgresql/9.1/main/pg_hba.conf and add at top: local all petraserver md5
nant recreateDatabase resetDatabase -D:DBMS.Type=postgresql
java -jar schemaSpy_5.0.0.jar -t pgsql -dp /usr/share/java/postgresql-jdbc4.jar -host localhost:5432 -db openpetra -u petraserver -p petra -s public -o outputDir
NAnt
- apt-get install nant
- then download latest NAnt, NAnt 0.91 Release
- unpack tar.gz file to /usr/local/nant-0.91
- modify /usr/bin/nant and point at /usr/local/nant-0.91/bin/NAnt.exe
- somehow, there is a problem when building for mono-2.0 or mono-4.0. The solution is to have two NAnt profiles:
the default/usr
and the other is/usr/local/nant-for-4.0
/usr/bin/nant:
#!/bin/sh #exec /usr/bin/cli /usr/lib/NAnt/NAnt.exe "$@" mono --runtime=v2.0 /usr/local/nant-0.91/bin/NAnt.exe "$@"
/usr/local/nant-for-4.0/bin/nant:
#!/bin/sh #exec /usr/bin/cli /usr/lib/NAnt/NAnt.exe "$@" mono --runtime=v4.0 /usr/local/nant-0.91/bin/NAnt.exe "$@"
Jenkins
wget -q -O - http://pkg.jenkins-ci.org/debian-stable/jenkins-ci.org.key | sudo apt-key add - vi /etc/apt/sources.list: deb http://pkg.jenkins-ci.org/debian-stable binary/
apt-get update apt-get install jenkins
- change port to 80: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
- better to use lighttpd because Apache needs another 200 MB of RAM.
- /etc/lighttpd/lighttpd.conf
add mod_proxy to the server.modules list, and at the bottom: proxy.server = ( "/" => (( "host" => "127.0.0.1", "port" => 8080)), )
- installed plugins:
backup
see also https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins
tar czf jenkins.tar.gz --exclude '/var/lib/jenkins/jobs/OpenPetraCodeDoc/javadoc/*' --exclude '/var/lib/jenkins/jobs/OpenPetraCodeDoc/schemaSpy/*' /var/lib/jenkins/
Jenkins on Windows
- similar setup to Jenkins on Ubuntu
- http://ci-win.solidcharity.com/
- the jobs OpenPetraBuildWin and OpenpetraBuildTestWin have their own OpenPetra.build.config file, stored in eg. C:\Program Files (x86)\Jenkins\workspace\OpenPetraBuildWin
<?xml version="1.0"?> <project name="OpenPetra-userconfig"> <property name="PostgreSQL.Version" value="9.1"/> <property name="DBMS.DBHostOrFile" value="devdb.solidcharity.com"/> <property name="DBMS.DBName" value="buildserver"/> <property name="DBMS.Setup.DBName" value="openpetra_basedb2"/> <property name="DBMS.UserName" value="buildserver"/> <property name="DBMS.Password" value="???"/> <property name="Server.DebugLevel" value="0"/> <property name="Server.Port" value="9432" /> </project>
Additional comments
Jenkins can also be a help translating openpetra. By this, translators can work on a translation online and on the next day get an installer including already their translated items. This makes it easier for translators because then they can see their translations right away.
One option would be copying the po-files once a day to a launchpad-branch and then create a nant-task that copies the content of this branch into /i8n
See here
A nant command to get the po-files from a launchpad branch would be fe. <get src="http://nant.sourceforge.org/" dest="help/index.html" />
Furthermore we then would have to move the Windows installer from "InnoSetup" to "Nullsoft Install" as "Innosetup" does not run on Linux.
A conversion tool can be found here.
Another option would be using wine in order to run InnoSetup on Linux. This seems to be more complicated to me(Joachim) as there are several points where this way would fail. For example Xvfb (or ttydrv) would be needed as InnoSetup wants to use an X Window. It may work aswell but surely need more time for setting up and maintenancing it.
More links: installer on jenkins
Update: January 2012: We tried "Nullsoft Install" for building Windows Installers but due to some complications there's now running aswell a windows-Jenkins which uses InnoSetup to build the windows Installer.
The openpetra-Jenkin-Servers can be found on