Joshua Hesketh | 1879cf7 | 2013-08-19 14:13:15 +1000 | [diff] [blame] | 1 | :title: Reporters |
| 2 | |
| 3 | Reporters |
| 4 | ========= |
| 5 | |
| 6 | Zuul can communicate results and progress back to configurable |
| 7 | protocols. For example, after succeeding in a build a pipeline can be |
Michael Prokop | 526926a | 2013-10-24 16:16:57 +0200 | [diff] [blame] | 8 | configured to post a positive review back to Gerrit. |
Joshua Hesketh | 1879cf7 | 2013-08-19 14:13:15 +1000 | [diff] [blame] | 9 | |
| 10 | There are three stages when a report can be handled. That is on: |
| 11 | Start, Success or Failure. Each stage can have multiple reports. |
Michael Prokop | 526926a | 2013-10-24 16:16:57 +0200 | [diff] [blame] | 12 | For example, you can set verified on Gerrit and send an email. |
Joshua Hesketh | 1879cf7 | 2013-08-19 14:13:15 +1000 | [diff] [blame] | 13 | |
| 14 | Gerrit |
| 15 | ------ |
| 16 | |
| 17 | Zuul works with standard versions of Gerrit by invoking the |
| 18 | ``gerrit`` command over an SSH connection. It reports back to |
| 19 | Gerrit using SSH. |
| 20 | |
Michael Prokop | 526926a | 2013-10-24 16:16:57 +0200 | [diff] [blame] | 21 | The dictionary passed to the Gerrit reporter is used for ``gerrit |
Joshua Hesketh | 1879cf7 | 2013-08-19 14:13:15 +1000 | [diff] [blame] | 22 | review`` arguments, with the boolean value of ``true`` simply |
| 23 | indicating that the argument should be present without following it |
| 24 | with a value. For example, ``verified: 1`` becomes ``gerrit review |
| 25 | --verified 1`` and ``submit: true`` becomes ``gerrit review |
| 26 | --submit``. |
| 27 | |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 28 | A :ref:`connection` that uses the gerrit driver must be supplied to the |
| 29 | trigger. |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 30 | |
Wayne | 40f4004 | 2015-06-12 16:56:30 -0700 | [diff] [blame] | 31 | GitHub |
| 32 | ------ |
| 33 | |
| 34 | Zuul reports back to GitHub pull requests via GitHub API. |
| 35 | It will create a comment containing the job status. |
| 36 | |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 37 | SMTP |
| 38 | ---- |
| 39 | |
| 40 | A simple email reporter is also available. |
| 41 | |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 42 | A :ref:`connection` that uses the smtp driver must be supplied to the |
Joshua Hesketh | d78b448 | 2015-09-14 16:56:34 -0600 | [diff] [blame] | 43 | reporter. |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 44 | |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 45 | SMTP Configuration |
| 46 | ~~~~~~~~~~~~~~~~~~ |
| 47 | |
Łukasz Jernaś | 048acb4 | 2014-03-02 18:49:41 +0100 | [diff] [blame] | 48 | zuul.conf contains the SMTP server and default to/from as described |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 49 | in :ref:`zuulconf`. |
| 50 | |
Łukasz Jernaś | 048acb4 | 2014-03-02 18:49:41 +0100 | [diff] [blame] | 51 | Each pipeline can overwrite the ``subject`` or the ``to`` or ``from`` address by |
James E. Blair | e591020 | 2013-12-27 09:50:31 -0800 | [diff] [blame] | 52 | providing alternatives as arguments to the reporter. For example, :: |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 53 | |
| 54 | pipelines: |
| 55 | - name: post-merge |
| 56 | manager: IndependentPipelineManager |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 57 | source: my_gerrit |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 58 | trigger: |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 59 | my_gerrit: |
| 60 | - event: change-merged |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 61 | success: |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 62 | outgoing_smtp: |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 63 | to: you@example.com |
| 64 | failure: |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 65 | internal_smtp: |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 66 | to: you@example.com |
| 67 | from: alternative@example.com |
James E. Blair | e591020 | 2013-12-27 09:50:31 -0800 | [diff] [blame] | 68 | subject: Change {change} failed |
Joshua Hesketh | d78b448 | 2015-09-14 16:56:34 -0600 | [diff] [blame] | 69 | |
| 70 | SQL |
| 71 | --- |
| 72 | |
| 73 | This reporter is used to store results in a database. |
| 74 | |
| 75 | A :ref:`connection` that uses the sql driver must be supplied to the |
| 76 | reporter. |
| 77 | |
| 78 | SQL Configuration |
| 79 | ~~~~~~~~~~~~~~~~~ |
| 80 | |
| 81 | zuul.conf contains the database connection and credentials. To store different |
| 82 | reports in different databases you'll need to create a new connection per |
| 83 | database. |
| 84 | |
| 85 | The sql reporter is used to store the results from individual builds rather |
| 86 | than the change. As such the sql reporter does nothing on "start" or |
| 87 | "merge-failure". |
| 88 | |
| 89 | **score** |
| 90 | A score to store for the result of the build. eg: -1 might indicate a failed |
| 91 | build similar to the vote posted back via the gerrit reporter. |
| 92 | |
| 93 | For example :: |
| 94 | |
| 95 | pipelines: |
| 96 | - name: post-merge |
| 97 | manager: IndependentPipelineManager |
| 98 | source: my_gerrit |
| 99 | trigger: |
| 100 | my_gerrit: |
| 101 | - event: change-merged |
| 102 | success: |
| 103 | mydb_conn: |
| 104 | score: 1 |
| 105 | failure: |
| 106 | mydb_conn: |
| 107 | score: -1 |