Mercurial > hg > autobot
annotate README.txt @ 187:bba97450cbc2
* update example and templates
* more documentation
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 01 Feb 2011 21:17:00 -0800 |
parents | c7172ca54dff |
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 |