[katello-devel] Proposal - Better Continuous Integration

Lukas Zapletal lzap at redhat.com
Tue Nov 20 17:49:54 UTC 2012


> >"As a developer I would really like to have CI for each pull-request."
> 
> If we can pull off running integration tests on every pull request,
> I think we should do it; I have my doubts this is feasible however.
> 30 mins per *each* pull request (and the time is only going to go
> up) is quite a bit. The value of these tests is somewhat limited
> too, as they are not truly integration tests, since each set of
> changes is tested independently from changes in other pull requests.
> 
> I don't think it's worth building an rpm for each pull request
> either. For which platform? would koji people even support such a
> use of infrastructure?
>

I also don't think it is feasible. You need to build RPMs in koji too,
because building it anywhere else tells you nothing. You really need to
build the packages in the same build root which we only have in koji.
Different build root gives different output, believe me.

Thats another 10-90 minutes (depends on how many tasks koji has enqued).
Full installation in a snap-guest takes about 10 minutes, then cli tests
are 20 minutes.

But the biggest issue is hardware resources - if you want to integrate
it with travis or public service, you need public hardware. The only
reasonable option would be run this internally (ozzak maybe).

Plus you need to do this on all platforms we support, Fedoras and RHEL.
Only RHEL or only Fedora does not make sense.

This is not continuous integration anymore. But I am not saying it does
not worth trying.

I can prepare deep dive about Koji and Beaker instead. Building a RPM is
ONE COMMAND for you, you can start it and it will be doing its work
while you can focus on a different task. Then you need to install
Katello nighty (Beaker or snap-guest/ciauciau) and install the RPM
there. Running some CLI tests is one command too, or you can check
manually what you need to do.

I usually have 2-3 (virtual) machines with nightly installation running
and I am testing my features/bugfixed there. I usually don't need clean
installation for each, until I break it I tend to re-use it. And if I
don't want to wait for Koji, I sometimes build my RPMs manually with
tito. (one command again) It's not perfect, but it works most of times.

I think you need to accept we are working on software project or
product that is not easy to setup and install. Work cannot be considered
done until you really test it. It can work hundred times on your
development setup, our environment is pretty different.

-- 
Later,

 Lukas "lzap" Zapletal
 #katello #systemengine




More information about the katello-devel mailing list