SQL

The SQL driver supports reporters only. Only one connection per database is permitted.

Connection Configuration

The connection options for the SQL driver are:

<sql connection>
<sql connection>.driver (required)
sql

The connection must set driver=sql for SQL connections.

<sql connection>.dburi (required)

Database connection information in the form of a URI understood by SQLAlchemy. See The SQLAlchemy manual for more information.

The driver will automatically set up the database creating and managing the necessary tables. Therefore the provided user should have sufficient permissions to manage the database. For example:

GRANT ALL ON my_database TO 'my_user'@'%';
<sql connection>.pool_recycle
Default: 1

Tune the pool_recycle value. See The SQLAlchemy manual on pooling for more information.

<sql connection>.table_prefix
Default: ''

The string to prefix the table names. This makes it possible to run several zuul deployments against the same database. This can be useful if you rely on external databases which you don’t have under control. The default is to have no prefix.

Reporter Configuration

This reporter is used to store results in a database.

A connection that uses the sql driver must be supplied to the reporter.

zuul.conf contains the database connection and credentials. To store different reports in different databases you’ll need to create a new connection per database.

The SQL reporter does nothing on pipeline.start or pipeline.merge-failure; it only acts on pipeline.success or pipeline.failure reporting stages.

For example:

- pipeline:
    name: post-merge
    success:
      mydb_conn:
    failure:
      mydb_conn:
pipeline.<reporter>.<sql source>

To report to a database, add a key with the connection name and an empty value to the desired pipeline reporter attributes.