Mercurial > hg > autobot
annotate README.txt @ 194:5257c9abea50
now we should at least download firefox, in theory
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Wed, 02 Feb 2011 14:26:41 -0800 |
| parents | bba97450cbc2 |
| children | 5f188d2a36aa |
| rev | line source |
|---|---|
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
1 autobot |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
2 ======= |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
3 |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
4 buildbot for the A*Team |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
5 |
| 184 | 6 |
| 7 What is autobot? | |
| 8 ---------------- | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
9 |
| 184 | 10 autobot is a continuous integration solution for the Automation and |
| 11 Tools Team. We have a lot of software. We're really talented, so | |
| 12 usually it doesn't break. But we're not infalliable. Our robot ally, | |
| 13 autobot, is there to test things for us. Let's me autobot! | |
| 14 | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
15 |
| 184 | 16 Installing autobot |
| 17 ------------------ | |
| 18 | |
| 19 autobot may be installed using the Install script:: | |
| 20 | |
| 21 curl http://k0s.org/mozilla/hg/autobot/raw-file/tip/INSTALL.sh | bash | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
22 |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
23 This will create a virtualenv and install autobot for development |
| 184 | 24 ($VIRTUAL_ENV/src/autobot). |
| 25 | |
| 26 | |
| 27 Setting up a buildmaster and slave | |
| 28 ---------------------------------- | |
| 29 | |
| 30 Once you have autobot installed and the virtualenv activated, you'll | |
| 31 want to create a buildmaster and a buildslave. | |
| 32 | |
| 33 You can create a master-slave pair by running ``create-autobot`` after | |
| 34 activating the virtualenv. This is mostly useful for autobot | |
| 35 development. The scripts ``create-autobot-master`` and | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
36 ``create-autobot-slave`` are also available. The scripts will prompt you |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
37 for a factory. The factories are from ``autobot.projects`` and its |
| 186 | 38 subdirectories. You can list the available factories with |
| 39 ``create-autobot --list-factories`` (or ``create-autobot-master | |
| 40 --list-factories``). | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
41 |
| 186 | 42 Running ``create-autobot --help`` will give the variables you can set |
| 43 when it makes a new bot for you (``create-autobot-master`` and | |
| 44 ``create-autobot-slave`` also have a ``--help``, the variables in | |
| 45 ``create-autobot`` being a superset of these). | |
| 184 | 46 |
| 186 | 47 If you don't specify a variable, the default will be used to create |
| 48 your particular bot. You can (probably) change it later. | |
| 49 | |
| 50 | |
| 184 | 51 Using autobot |
| 52 ------------- | |
| 53 | |
|
187
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
54 The buildmaster and buildslave are started with |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
55 ``buildbot start master`` and ``buildslave stop slave``. Respective |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
56 ``stop`` commands also exist. If you used the ``create-autobot`` |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
57 command the generated bot will have a ``restart_buildbot.py`` script |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
58 that will stop and start both the master and slave and (if debug is |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
59 set) remove the log as well. |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
60 |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
61 The generated ``master.cfg`` file reads values from an ``master.ini`` |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
62 file in the same directory |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
63 |
| 184 | 64 It is important to remember that continuous integration is a safety |
| 65 net, not a first line of defense. | |
| 66 | |
| 67 | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
68 Projects |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
69 -------- |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
70 |
| 184 | 71 What does autobot test? |
| 72 | |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
73 * logparser [WORKING] |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
74 * profilemanager [IN FLIGHT] |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
75 * mozmill [IN FLIGHT] |
| 70 | 76 * devicemanager [IN FLIGHT] |
|
59
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
77 * firebug [TODO] |
|
e66165f2f31b
complete automagic imports
Jeff Hammel <jhammel@mozilla.com>
parents:
30
diff
changeset
|
78 * jetpack [TODO] |
| 70 | 79 |
| 186 | 80 The projects are obtained from any factories in subdirectories of |
| 81 ``autobot.projects`` (use | |
| 82 ``python -c 'from autobot import projects; print projects.__file__'`` | |
| 83 to see this location). | |
| 84 | |
| 184 | 85 |
| 86 Adding a New Project | |
| 87 -------------------- | |
| 88 | |
|
187
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
89 Occassionally, you'll need to add a new project to test. You can add |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
90 a ``__init__.py`` file |
| 186 | 91 |
| 92 | |
| 93 Is your autobot being feisty? | |
| 94 ----------------------------- | |
| 95 | |
| 96 Let me know! I'd like to make autobot a solution that works for all | |
| 97 stake-holders, and if you're reading this, that means you! | |
| 98 | |
|
187
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
99 jhammel@mozilla.com |
| 186 | 100 |
| 101 TODO | |
| 102 ---- | |
| 103 | |
|
187
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
104 No software of any size is ever finished. Here are a few things I |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
105 would like to add: |
| 186 | 106 |
|
187
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
107 * singular checkout of repos on slaves: the slaves should have a |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
108 singular master repo that is checked out once for each repo URL, |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
109 branch pair. It is then updated as the slaves need and (e.g.) |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
110 cloned from there. This should effectively minimize fetch time. |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
111 |
|
bba97450cbc2
* update example and templates
Jeff Hammel <jhammel@mozilla.com>
parents:
186
diff
changeset
|
112 * slaves should have .ini files indicated by the config |
