%global owner openstack-infra %global name zuul Name: zuul Version: 2.1.0 Release: 1%{?dist} Summary: Trunk gating system developed for the OpenStack Project Group: Applications/Productivity License: ASL 2.0 URL: https://git.openstack.org/cgit/%{owner}/%{name}/tree/ Source0: https://pypi.python.org/packages/source/z/%{name}/%{name}-%{version}.tar.gz Source1: zuul.conf Source2: layout.yaml Source3: logging.conf Source4: zuul.service Source5: zuul-merger.service # This patch has been submitted upstream https://review.openstack.org/#/c/214100/ Patch0001: 0001-Remove-unnecessary-shebangs-as-managed-by-some-entry.patch BuildArch: noarch BuildRequires: python-pbr BuildRequires: python2-devel BuildRequires: python-setuptools BuildRequires: systemd Requires: python Requires: python-pbr Requires: python-extras Requires: python-babel Requires: python-argparse Requires: PyYAML Requires: python-paste Requires: python-webob Requires: python-paramiko Requires: GitPython Requires: python-daemon Requires: python-voluptuous Requires: python-prettytable Requires: python-six Requires: python-statsd Requires: python-gear Requires: python-APScheduler # Requires: apscheduler >= 2.1.1 and < 3.0 (https://bugzilla.redhat.com/show_bug.cgi?id=1218410) %description This is a program that is used to gate the source code repository of a project so that changes are only merged if they pass tests. The main component is the scheduler. It receives events related to proposed changes, triggers tests based on those events, and reports back. This software interacts between Gerrit and Jenkins by listening the Gerrit events stream and triggering jobs. %package status Summary: Status page for a Zuul server Requires: unzip %description status Status page for a Zuul server. %prep %setup -qn %{name}-%{version} %patch0001 -p1 rm -f requirements.txt etc/status/.gitignore %build %{__python} setup.py build %install %{__python} setup.py install --skip-build --root %{buildroot} install -d -m 755 %{buildroot}%{_sysconfdir}/zuul install -d -m 755 %{buildroot}%{_localstatedir}/log/zuul install -d -m 755 %{buildroot}%{_sharedstatedir}/zuul install -p -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/zuul/zuul.conf install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/zuul/layout.yaml install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/zuul/logging.conf install -p -D -m 644 %{SOURCE4} %{buildroot}%{_unitdir}/zuul.service install -p -D -m 644 %{SOURCE5} %{buildroot}%{_unitdir}/zuul-merger.service install -d -m 755 %{buildroot}%{_datadir}/zuul-status cp -R etc/status/* %{buildroot}%{_datadir}/zuul-status %files %doc README.rst NEWS.rst doc %license LICENSE %{_bindir}/* %{python_sitelib}/zuul/ %{python_sitelib}/zuul-*egg-info/ %config(noreplace) %attr(0644, zuul, root) %{_sysconfdir}/zuul/zuul.conf %config(noreplace) %attr(0644, zuul, root) %{_sysconfdir}/zuul/layout.yaml %config(noreplace) %attr(0644, zuul, root) %{_sysconfdir}/zuul/logging.conf %dir %attr(0755, zuul, root) %{_localstatedir}/log/zuul %dir %attr(0755, zuul, root) %{_sharedstatedir}/zuul %{_unitdir}/zuul.service %{_unitdir}/zuul-merger.service %files status %{_datadir}/zuul-status %license LICENSE %pre getent group zuul >/dev/null || groupadd -r zuul getent passwd zuul >/dev/null || \ useradd -r -g zuul -d %{_sharedstatedir}/zuul -s /sbin/nologin -c "Zuul gating system" zuul exit 0 %changelog * Mon Aug 17 2015 Fabien Boucher - 2.1.0-1 - Use tagged version 2.1.0 * Tue Apr 21 2015 Fabien Boucher - 2.0-0.20150421git135a935.fc21 - Initial packaging