[SSSD] [RFC] Add basic support for CI test execution

Nikolai Kondrashov Nikolai.Kondrashov at redhat.com
Fri Jun 13 17:51:27 UTC 2014


On 06/13/2014 05:50 PM, Lukas Slebodnik wrote:
> On (13/06/14 16:49), Nikolai Kondrashov wrote:
>> On 06/13/2014 03:14 PM, Lukas Slebodnik wrote:
>>> On (13/06/14 14:50), Nikolai Kondrashov wrote:
>>
>> CI runs configure anyway, so "make srpm" would be better as it's slightly more
>> reliable compared to make_srpm.sh which duplicates substitution code.
>>
> You need to execute configrure for "make srpm"
> thus you need to have installed all dependencies
> and we are back to the problem with maintaining build depdendencies for fedora&rhel

Sure, but we need to have the dependencies installed anyway (no matter how the
information about them is retrieved) before we start the other tests.

> make_srpm.sh is reliable. It is used by Kevin Wright to rebuild srpm
> on rhel6 and he caught few problems in last months.

It is reliable towards repeated execution, but not so much towards repeated
change of the other sources it depends on.

>> Mock seems the right thing to do in general, but not on the CI server, since
>> the latter already has builders with various distributions and installs
>> dependencies itself. Using it there would duplicate the functionality and
>> load to some extent and it wouldn't make sense to run it on each of the
>> builders.
>>
> I proposed mock because it will not be difficult to integrate it. As you
> could see, it is a simple command and configuration of mock is very easy.
> With CI, you cannot guarantee minimal set of build dependencies.  On VM with
> CI, leftovers from previous builds can be installed and it can hide some
> problems.

Yes, I understand that.

> Or do you want to start new clean VM every time?
> It would be overkill from my POV.

As I understand it, the ultimate plan decided by the management is to use
OpenStack or some such to provision the VMs. Still, this is not going to
happen fast.

Until then, I think a dedicated builder doing just mock builds for various
distros would do. We can trigger it together with the distro-specific
builders. I just don't want to start writing another script right now, I want
to deliver this one first.

> mock and rpm are fedora/rhel specific. I am not sure if it works with opensuse.
> They have Open Build Service. On the other side, we needn't test each
> distribution in CI from beginning. Fedora, rhel, debian are good start.

Well, if it works on OpenSuse and we decide we need to test it, then we'll use
it.

>> I would say that building directly on the builder distro will be good enough
>> for a start. Later we can replace it with a separate script and a separate
>> builder for running mock builds with various distros.
> I am not against directly building sssd on distro. It is faster, because you
> will need to compile sssd few times (scan-build, with gcc for valgrind and
> others otions in future). Building with mock can be additional test and
> it needn't be part of reduced test set.

The thing is, I would like to have one script that could be ran both locally
and on CI, with obvious benefits. However having mock there and then having
every Red Hat distro builder run it doesn't make sense, as the mock
environment and the results will be the same. That's what mock is for, as you
know.

So, I'd like to have a separate script for mock, which will run on a separate
builder and will build packages for all the distros we need, once for each
job.

> BTW building src.rpm in mock is slow only on first time, because mock will
> cache rpms in /var/cache/mock/<dist>-<arch>.

Sure.

> And building packages in mock is proven by time because it is used by koji
> for buiding every package in fedora/epel.

I agree.

> I use 'yum install "pkgconfig(ini_config)"' when I don't remember name of
> package and I am lazy to search for package with "yum provides */ini_config.pc"
>
> You can use it also for installation of other packages. It is very usefull.
> e.g.
>    yum install "perl(IO::Handle)"
>    yum install "perl(:MODULE_COMPAT_5.18.2)"
>    yum install "python(abi) = 3.3"

Thanks for the hint, Lukas. I'll need to keep it in mind.

Nick.



More information about the sssd-devel mailing list