Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 101 lines (70 sloc) 5.577 kB
2e23896 @whimboo Update README for job priorities
whimboo authored
1 # Mozmill CI
c4209b9 @whimboo Update README with documentation about setup and first run topics
whimboo authored
2 With the Mozmill CI project we aim to get a fully automated testing cycle implemented for testing Firefox in the Mozilla QA compartment. Therefore the [Mozilla Pulse](http://pulse.mozilla.org/) message broker and [Jenkins](http://jenkins-ci.org/) are used.
3
2e23896 @whimboo Update README for job priorities
whimboo authored
4 ## Setup
c4209b9 @whimboo Update README with documentation about setup and first run topics
whimboo authored
5 Before you can start the system the following commands have to be performed:
6
7 git clone git://github.com/whimboo/mozmill-ci.git
8 cd mozmill-ci
9 ./setup/configure.sh
10
2e23896 @whimboo Update README for job priorities
whimboo authored
11 ## Startup
c4209b9 @whimboo Update README with documentation about setup and first run topics
whimboo authored
12 The two components (Pulse consumer and Jenkins master) have to be started separately in two different terminals. As first step we have to setup the Jenkins master:
13
14 ./start.sh
15
0416c0f @whimboo Update Mozmill version and reset default notification email address
whimboo authored
16 Once Jenkins has been fully started, you will have to configure your system now. Therefore open `http://localhost:8080/configure` via your web browser. In the section "Global properties" update the following entries:
17
18 MOZMILL_VERSION (Version of Mozmill to use)
19 NOTIFICATION_ADDRESS (Email address of the notification emails)
20
21 After you are done with the configuration open the `+admin` view and execute all of the listed jobs once. Also update the `Jenkins URL` of the master to a public accessible IP or DNS name, so that slave nodes can successfully connect.
c4209b9 @whimboo Update README with documentation about setup and first run topics
whimboo authored
22
23 Now you can start the Pulse consumer which pushes requests for jobs through the Jenkins API to the master:
24
25 source jenkins-env/bin/activate
26 ./pulse.py config/example_daily.cfg
27
28 Please keep in mind that you should create your own configuration file before you start the consumer and setup the wanted builds appropriately.
29
2e23896 @whimboo Update README for job priorities
whimboo authored
30 ## Adding new Nodes
a13a82b @whimboo Update setup documentation for Linux and fix broken remoteFS setting
whimboo authored
31 To add Jenkins slaves to your master you have to create new nodes. You can use one of the example nodes (Windows XP and Ubuntu) as a template. Once done the nodes have to be connected to the master. Therefore Java has to be installed on the node first.
32
2e23896 @whimboo Update README for job priorities
whimboo authored
33 ### Windows:
1ee9d26 @whimboo Update README for setting up nodes
whimboo authored
34 Go to [www.java.com/download/](http://www.java.com/download/) and install the latest version of Java JRE. Also make sure that the UAC is completely disabled, and the screensaver and any energy settings have been turned off.
a13a82b @whimboo Update setup documentation for Linux and fix broken remoteFS setting
whimboo authored
35
2e23896 @whimboo Update README for job priorities
whimboo authored
36 ### Linux (Ubuntu):
1ee9d26 @whimboo Update README for setting up nodes
whimboo authored
37 Open the terminal or any other package manager and install the following packages:
38
a13a82b @whimboo Update setup documentation for Linux and fix broken remoteFS setting
whimboo authored
39 sudo add-apt-repository ppa:ferramroberto/java
40 sudo apt-get update
41 sudo apt-get install sun-java6-jre sun-java6-plugin
42
1ee9d26 @whimboo Update README for setting up nodes
whimboo authored
43 Also make sure that the screensaver and any energy settings have been turned off.
44
a13a82b @whimboo Update setup documentation for Linux and fix broken remoteFS setting
whimboo authored
45 After Java has been installed open the appropriate node within Jenkins from the nodes web browser like:
c4209b9 @whimboo Update README with documentation about setup and first run topics
whimboo authored
46
47 http://IP:8080/computer/windows_xp_32_01/
48
49 Now click the `Launch` button and the node should automatically connect to the master. It will be used once a job for this type of platform has been requested by the Pulse consumer.
a13a82b @whimboo Update setup documentation for Linux and fix broken remoteFS setting
whimboo authored
50
2e23896 @whimboo Update README for job priorities
whimboo authored
51 ## Using the Jenkins master as executor
04f1a41 @whimboo Update master default label to OS X for now
whimboo authored
52 If you want that the master node also executes jobs you will have to update its labels and add/modify the appropriate platforms, e.g. 'master mac 10.7 64bit' for MacOS X 10.7.
e6e3a44 @ashughes1 Update README.md to include on-demand execution instructions
ashughes1 authored
53
2e23896 @whimboo Update README for job priorities
whimboo authored
54 ## Job priorities
55 To allow Mozmill tests to be executed immediately for release and beta builds priorities are necessary. The same applies to the type of testrun, where some have higher priority.
56
8443f82 @whimboo Add jobs for esr10 release candidate builds (#156)
whimboo authored
57 trigger_ondemand = 1099
58
59 ondemand = 1000
60 release-mozilla-release = 800
61 release-mozilla-esr(CUR) = 700
62 release-mozilla-esr(LAST) = 600
63 release-mozilla-beta = 500
64 mozilla-esr = 400
65 mozilla-central = 300
66 mozilla-aurora = 200
67 mozilla-1.9.2 = 100
68
69 update = 60
70 functional = 50
71 endurance = 40
72 remote = 30
73 addon = 20
74 l10n = 10
2e23896 @whimboo Update README for job priorities
whimboo authored
75
76 The higher the priority value, the higher the priority the job will have in the queue. For example, mozilla-central_endurance will have a value of 340 (300 + 40) and will therefore be executed before mozilla-aurora_endurance, which will have a value of 240 (200 + 40).
77
f120d8e @whimboo Add steps to readme for the merge process
whimboo authored
78 ## Merging branches
79 The main development on the Mozmill CI code happens on the master branch. In not yet specified intervals we are merging changesets into the staging branch. It is used for testing all the new features before those go live on production. When running those merge tasks you will have to obey the following steps:
80
81 1. Select the appropriate target branch
82 2. Run 'git rebase master' for staging or 'git rebase staging' for production
83 3. Merge the changes with 'git merge master' for staging or 'git merge staging' for production
84 4. Ensure that the Jenkins patch can be applied by running 'patch -p1 <config/%BRANCH%/jenkins.patch'
85
86 Once the changes have been landed you will have to update the staging or production machines. Run the following steps:
87
88 1. Run 'git reset --hard' to remove the locally applied patch
89 2. Pull the latest changes with 'git pull'
90 3. Apply the Jenkins patch with 'patch -p1 <config/%BRANCH%/jenkins.patch'
91 4. Restart Jenkins
92
2e23896 @whimboo Update README for job priorities
whimboo authored
93 ## Running on-demand tests
e6e3a44 @ashughes1 Update README.md to include on-demand execution instructions
ashughes1 authored
94 1. Navigate to your Jenkins instance: http://IP:8080
95 2. Open the +admin tab and look for the 'trigger-ondemand' row
96 3. Click the green arrow button, 'Schedule a Build'
97 4. Upload your ondemand.cfg file (see examples in [./config/ondemand/](https://github.com/whimboo/mozmill-ci/tree/master/config/ondemand))
98 5. Click 'Back to Dashboard' link and open the @ondemand tab
99
100 If you see an ondemand_* testrun in the middle is blinking and the nodes on the left are not 'idle', your testrun is executing. The results should appear in your dashboard when complete.
Something went wrong with that request. Please try again.