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. |
Jan Hruban | e252a73 | 2017-01-03 15:03:09 +0100 | [diff] [blame^] | 35 | On success and failure, it creates a comment containing the build results. |
| 36 | It also sets the status on start, success and failure. Status name and |
| 37 | description is taken from the pipeline. |
| 38 | |
| 39 | A :ref:`connection` that uses the github driver must be supplied to the |
| 40 | reporter. It has the following options: |
| 41 | |
| 42 | **status** |
| 43 | String value (``pending``, ``success``, ``failure``) that the reporter should |
| 44 | set as the commit status on github. |
| 45 | ``status: 'success'`` |
| 46 | |
| 47 | **comment** |
| 48 | Boolean value (``true`` or ``false``) that determines if the reporter should |
| 49 | add a comment to the pipeline status to the github pull request. Defaults |
| 50 | to ``true``. |
| 51 | ``comment: false`` |
Wayne | 40f4004 | 2015-06-12 16:56:30 -0700 | [diff] [blame] | 52 | |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 53 | SMTP |
| 54 | ---- |
| 55 | |
| 56 | A simple email reporter is also available. |
| 57 | |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 58 | 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] | 59 | reporter. |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 60 | |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 61 | SMTP Configuration |
| 62 | ~~~~~~~~~~~~~~~~~~ |
| 63 | |
Łukasz Jernaś | 048acb4 | 2014-03-02 18:49:41 +0100 | [diff] [blame] | 64 | zuul.conf contains the SMTP server and default to/from as described |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 65 | in :ref:`zuulconf`. |
| 66 | |
Łukasz Jernaś | 048acb4 | 2014-03-02 18:49:41 +0100 | [diff] [blame] | 67 | 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] | 68 | providing alternatives as arguments to the reporter. For example, :: |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 69 | |
| 70 | pipelines: |
| 71 | - name: post-merge |
| 72 | manager: IndependentPipelineManager |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 73 | source: my_gerrit |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 74 | trigger: |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 75 | my_gerrit: |
| 76 | - event: change-merged |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 77 | success: |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 78 | outgoing_smtp: |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 79 | to: you@example.com |
| 80 | failure: |
Joshua Hesketh | fe485c6 | 2015-08-11 23:42:34 +1000 | [diff] [blame] | 81 | internal_smtp: |
Joshua Hesketh | 5fea867 | 2013-08-19 17:32:01 +1000 | [diff] [blame] | 82 | to: you@example.com |
| 83 | from: alternative@example.com |
James E. Blair | e591020 | 2013-12-27 09:50:31 -0800 | [diff] [blame] | 84 | subject: Change {change} failed |
Joshua Hesketh | d78b448 | 2015-09-14 16:56:34 -0600 | [diff] [blame] | 85 | |
| 86 | SQL |
| 87 | --- |
| 88 | |
| 89 | This reporter is used to store results in a database. |
| 90 | |
| 91 | A :ref:`connection` that uses the sql driver must be supplied to the |
| 92 | reporter. |
| 93 | |
| 94 | SQL Configuration |
| 95 | ~~~~~~~~~~~~~~~~~ |
| 96 | |
| 97 | zuul.conf contains the database connection and credentials. To store different |
| 98 | reports in different databases you'll need to create a new connection per |
| 99 | database. |
| 100 | |
| 101 | The sql reporter is used to store the results from individual builds rather |
| 102 | than the change. As such the sql reporter does nothing on "start" or |
| 103 | "merge-failure". |
| 104 | |
| 105 | **score** |
| 106 | A score to store for the result of the build. eg: -1 might indicate a failed |
| 107 | build similar to the vote posted back via the gerrit reporter. |
| 108 | |
| 109 | For example :: |
| 110 | |
| 111 | pipelines: |
| 112 | - name: post-merge |
| 113 | manager: IndependentPipelineManager |
| 114 | source: my_gerrit |
| 115 | trigger: |
| 116 | my_gerrit: |
| 117 | - event: change-merged |
| 118 | success: |
| 119 | mydb_conn: |
| 120 | score: 1 |
| 121 | failure: |
| 122 | mydb_conn: |
| 123 | score: -1 |