Difference between revisions of "Buildbot and Cairo"
m (Fixed the task table) |
(Added release notes) |
||
Line 17: | Line 17: | ||
NOTE: only Project Leader(s) should add names here. You '''can’t''' add your own name to the Contributor list. | NOTE: only Project Leader(s) should add names here. You '''can’t''' add your own name to the Contributor list. | ||
+ | |||
+ | == Release Feb. 15th == | ||
+ | '''Where will I put code and screenshots?''' | ||
+ | * [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/ http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/] - Buildbot configs (look for "cairo") | ||
+ | * [http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/ http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/] - Archived files | ||
+ | * [http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/ http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/] - Screenshots (look for "cairo" in the filenames) | ||
+ | |||
+ | '''What has been released this week:''' | ||
+ | * [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/cairo-one-ubuntu-slave/master.cfg master.cfg] - It builds Cairo and runs automated tests on one linux machine | ||
+ | * [http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/buildbot-status-cairo.jpg buildbot-status-cairo.jpg] - After build #8 (no tests at this point) | ||
+ | * [http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/Buildbot:Cairo-results.tar.gz Buildbot:Cairo-results.tar.gz] - After build #11 (tests were run) | ||
+ | |||
+ | '''Steps to meet requirements''' | ||
+ | * sudo apt-get install buildbot | ||
+ | * sudo apt-get install git-core //This is to get the version control that cairo uses, it is called GIT | ||
+ | |||
+ | '''Steps to make it happen''' | ||
+ | * buildbot create-master ~/cairomaster | ||
+ | * Put the [http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/cairo-one-ubuntu-slave/master.cfg master.cfg] to the the created master | ||
+ | * buildbot create-slave ~/cairoslave localhost:9876 cairoslave | ||
+ | * buildbot start ~/cairomaster | ||
+ | * buildbot start ~/cairoslave | ||
+ | * firefox http://localhost:8020 //This is to be able to see the results of the build | ||
== Tasks == | == Tasks == |
Revision as of 13:40, 16 February 2008
Contents
Name
Cairo on Buildbot
Description
Automate Cairo builds with testing suites on Buildbot. Automate Cairo builds with buildbot, and add in support for running test suites with buildbot.
Leader(s)
Contributor(s)
NOTE: only Project Leader(s) should add names here. You can’t add your own name to the Contributor list.
Release Feb. 15th
Where will I put code and screenshots?
- http://svn2.assembla.com/svn/Seneca_Hera_Try_Server_Setup/buildbot-configs/ - Buildbot configs (look for "cairo")
- http://matrix.senecac.on.ca/%7Eazambran/mozilla/cairo/ - Archived files
- http://matrix.senecac.on.ca/%7Eazambran/mozilla/screenshots/ - Screenshots (look for "cairo" in the filenames)
What has been released this week:
- master.cfg - It builds Cairo and runs automated tests on one linux machine
- buildbot-status-cairo.jpg - After build #8 (no tests at this point)
- Buildbot:Cairo-results.tar.gz - After build #11 (tests were run)
Steps to meet requirements
- sudo apt-get install buildbot
- sudo apt-get install git-core //This is to get the version control that cairo uses, it is called GIT
Steps to make it happen
- buildbot create-master ~/cairomaster
- Put the master.cfg to the the created master
- buildbot create-slave ~/cairoslave localhost:9876 cairoslave
- buildbot start ~/cairomaster
- buildbot start ~/cairoslave
- firefox http://localhost:8020 //This is to be able to see the results of the build
Tasks
Task |
Details |
Priority |
Contrib. |
Status |
Target |
Link(s) |
---|---|---|---|---|---|---|
Build Cairo manually | Manually build Cairo | Med | armenzg | Done | Blog: Building Cairo | |
Buildbot and Cairo on Linux | Build on my laptop Cairo and run tests; Missing perf tests | High | armenzg | Done | 15 Feb | Blog: Buildbot with Cairo |
Fix GIT and SUDO issue | * Fixed by delete checked out source code and ./configure --prefix | High | armenzg | Fixed | 15 Feb | |
Write the steps for Mac | Med | |||||
Run the "performance" steps | Med | |||||
Find out how to use PKG_CONFIG_PATH | Med | |||||
Build upon source changes in the GIT repository | Med | |||||
Try to use the GIT source class that buildbot has | Med | |||||
Package results and make them available | Pass the results of "make test" and "make html" to the master and allow to download them | Med | ||||
Write a CSS file for the waterfall view | Med | |||||
Email notifications? IRC notifications? | Med |
Problems
- The first time the command GIT CLONE works because there is nothing before that execution but the second run should be an update instead of a checkout. What could be the proper GIT command to have as the step?
- I need to do SUDO MAKE INSTALL, but this requires user's input which breaks the automated concept. What could be the right step?
Project News
Feb 11 2008 - Steps are written but some issues have to fixed Jan 19 2008 - Project Proposal from Vladimir Vukicevic.
Notes
master.cfg draft
# -*- python -*- # ex: set syntax=python: # This master.cfg defines how to build Cairo and run the tests it has from buildbot.scheduler import Scheduler, Periodic from buildbot.process import step, factory from buildbot.status import html s = factory.s c = BuildmasterConfig = {} ####### PROJECT IDENTITY c['projectName'] = "Cairo" c['projectURL'] = "http://www.cairographics.org/" # changed buildbot's default port c['buildbotURL'] = "http://localhost:8020/" #modified from default's buildbot port c['slavePortnum'] = 9876 ####### BUILDSLAVES c['bots'] = [("cairoslave", "cairoslavepassword")] ####### STATUS TARGETS c['status'] = [] from buildbot.status import html c['status'].append(html.Waterfall(http_port=8010)) ####### CHANGESOURCES c['sources'] = [] # Armen - Research GIT source changes ####### SCHEDULERS ## configure the Schedulers from buildbot.scheduler import Scheduler c['schedulers'] = [] c['schedulers'].append(Periodic(name="30 minutes build scheduler", builderNames=["Linux Ubuntu7.1 dep unit test"], periodicBuildTimer=30*60)) ####### BUILDERS builders = [] ubuntuFactory = factory.BuildFactory() ubuntuFactory.addStep(step.ShellCommand, name="checkout pixman", command=["git","clone","git://git.cairographics.org/git/pixman"], workdir="") ubuntuFactory.addStep(step.ShellCommand, name="checkout cairo", command=["git","clone","git://git.cairographics.org/git/cairo"], workdir="") ubuntuFactory.addStep(step.ShellCommand, name="autogen for pixman", command=["./autogen.sh"], workdir="pixman") ubuntuFactory.addStep(step.ShellCommand, name="configure pixman", command=["./configure"], workdir="pixman") ubuntuFactory.addStep(step.ShellCommand, name="make pixman", command=["make"], workdir="pixman") ubuntuFactory.addStep(step.ShellCommand, name="make install pixman", command=["sudo","make","install"], workdir="pixman") #let's prepare cairo ubuntuFactory.addStep(step.ShellCommand, name="autogen for cairo", command=["./autogen.sh"], workdir="cairo") ubuntuFactory.addStep(step.ShellCommand, name="configure cairo", command=["./configure"], workdir="cairo") ubuntuFactory.addStep(step.ShellCommand, name="make cairo", command=["make"], workdir="cairo") ubuntuFactory.addStep(step.ShellCommand, name="make install cairo", command=["sudo","make","install"], workdir="cairo") cairo_trunk_ubuntu_builder = { 'name': "Linux Ubuntu7.1 dep unit test", 'slavenames': ['cairoslave'], 'builddir': "trunk_ubuntu", 'factory': ubuntuFactory} builders.append(cairo_trunk_ubuntu_builder) c['builders'] = builders # c['builders'] = [cairo_trunk_ubuntu_builder]
Build Cairo manually
- mkdir cairo & cd cairo
- git clone git://git.cairographics.org/git/pixman
- git clone git://git.cairographics.org/git/cairo
- cd pixman && ./autogen.sh
- ./configure
- make
- make install //I have a problem can I set up buildbot to use SUDO??
make[2]: Entering directory `/home/armen/sandbox/cairo2/pixman/pixman' test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib" /bin/bash ../libtool --mode=install /usr/bin/install -c 'libpixman-1.la' '/usr/local/lib/libpixman-1.la' /usr/bin/install -c .libs/libpixman-1.so.0.9.6 /usr/local/lib/libpixman-1.so.0.9.6 /usr/bin/install: cannot remove `/usr/local/lib/libpixman-1.so.0.9.6': Permission denied make[2]: *** [install-libLTLIBRARIES] Error 1
- sudo make install //I had to use SUDO
- whereis libpixman-1
- cd ../cairo && ./autogen.sh
- ./configure
- make
- make install //the same problem with SUDO
make[2]: Entering directory `/home/armen/sandbox/cairo2/cairo/src' test -z "/usr/local/lib" || /bin/mkdir -p "/usr/local/lib" /bin/bash ../libtool --mode=install /usr/bin/install -c 'libcairo.la' '/usr/local/lib/libcairo.la' /usr/bin/install -c .libs/libcairo.so.2.14.0 /usr/local/lib/libcairo.so.2.14.0 /usr/bin/install: cannot create regular file `/usr/local/lib/libcairo.so.2.14.0': Permission denied
- sudo make install
Running the tests and getting an index.html file with them
- make test //takes long time
- cd test && make html
- firefox index.html