diff --git a/.zuul.yaml b/.zuul.yaml index 25239d9..03406f3 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -18,6 +18,7 @@ nodeset: ubuntu-bionic vars: zuul_pip_version: 3.19.1 + zuul_pip_name: zuul[mysql_reporter] # Testing for zuul_install_method: git - job: diff --git a/bindep.txt b/bindep.txt index cdc085b..5a6b1fc 100644 --- a/bindep.txt +++ b/bindep.txt @@ -5,6 +5,8 @@ git libffi-dev [platform:dpkg] libffi-devel [platform:rpm] libssl-dev [platform:dpkg] +mysql-client [test !platform:rpm] +mysql-server [test] openssl-devel [platform:rpm] python3-dnf [platform:fedora] python3-libselinux [platform:rpm] diff --git a/templates/etc/zuul/zuul.conf b/templates/etc/zuul/zuul.conf index bef1b40..fd85380 100644 --- a/templates/etc/zuul/zuul.conf +++ b/templates/etc/zuul/zuul.conf @@ -42,3 +42,7 @@ zuul_url = 127.0.0.1 [web] log_config = /etc/zuul/web-logging.conf listen_address = 127.0.0.1 + +[connection database] +driver = sql +dburi = mysql+pymysql://zuul:secret@127.0.0.1/zuul diff --git a/tools/test-setup.sh b/tools/test-setup.sh new file mode 100755 index 0000000..f8b493f --- /dev/null +++ b/tools/test-setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash -ex +# Copyright 2018 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Be sure mysql is started. +sudo service mysql start + +# The root password for the MySQL database; pass it in via +# MYSQL_ROOT_PW. +DB_ROOT_PW=${MYSQL_ROOT_PW:-insecure_worker} + +# This user and its password are used by the tests, if you change it, +# your tests might fail. +DB_USER=zuul +DB_PW=secret + +sudo -H mysqladmin -u root password $DB_ROOT_PW + +# It's best practice to remove anonymous users from the database. If +# a anonymous user exists, then it matches first for connections and +# other connections from that host will not work. +sudo -H mysql -u root -p$DB_ROOT_PW -h localhost -e " + DELETE FROM mysql.user WHERE User=''; + FLUSH PRIVILEGES; + CREATE USER '$DB_USER'@'%' IDENTIFIED BY '$DB_PW'; + GRANT ALL PRIVILEGES ON *.* TO '$DB_USER'@'%' WITH GRANT OPTION;" + +# Now create our database. +mysql -u $DB_USER -p$DB_PW -h 127.0.0.1 -e " + SET default_storage_engine=MYISAM; + DROP DATABASE IF EXISTS zuul; + CREATE DATABASE zuul CHARACTER SET utf8;"