[Mesa-dev] Gitlab migration
jason at jlekstrand.net
Sat May 26 03:35:08 UTC 2018
On Fri, May 25, 2018 at 4:47 PM, Mark Janes <mark.a.janes at intel.com> wrote:
> Daniel Stone <daniel at fooishbar.org> writes:
> > GitLab CI fixes all of these things. Pipelines are strongly and
> > directly correlated with commits in repositories, though you can also
> > trigger them manually or on a schedule. Permissions are that of the
> > repository, and just like Travis, people can fork and work on CI
> > improvements in their own sandbox without impacting anything else. The
> > job configuration is in relatively clean YAML, and it strongly
> > suggests idiomatic form rather than a forest of thousands of
> > unmaintained plugins.
> > Jobs get run in clean containers, rather than special unicorn workers
> > pre-configured just so, meaning that the builds are totally
> > reproducible locally and you can use whatever build dependencies you
> > want without having to bug the admins to install LLVM in some
> > particular chroot. Those containers can be stored in a registry
> > attached to the project, with their own lifetime/ownership/etc
> > tracking. Jenkins can use Docker if you have an external registry, but
> > again this requires setting up external authentication and
> > permissions, not to mention that there's no lifetime/ownership/expiry
> > tracking, so you have to write more special admin cronjob scripts to
> > clean up old images in the registry.
> GitLab may be perfectly suitable for CI, but please do not select Mesa
> dev infrastructure based on CI features.
> Any Mesa CI needs to trigger from multiple projects: drm, dEQP, Piglit,
> VulkanCTS, SPIRV-Tools, crucible, glslang. They are not all going to be
> in GitLab.
> The cart (CI) follows the horse (upstream development process). CI
> automation is cheap and flexible, and can easily adapt to changes in the
> driver implementation / dev process.
I think part of the difficulty in this discussion is something you
referenced in the second paragraph above. The type of CI we do in our
Jenkins system is in a different domain than the type of CI supported by
the likes of gitlab. The CI we do in our lab is more along the lines of
integration testing where multiple components all have to come together
whereas the gitlab CI framework is more intended to support single-project
unit testing. The gitlab CI system also does not scale nearly well enough
to handle the kind of testing that we need to do. The gitlab CI hooks
would work fairly well for building the website, running some build tests,
and maybe make check but it will never be a replacement for the Jenkins
system we have in our lab. They're a useful feature (that's a good thing!)
but certainly not a replacement for what we have today. I'm sorry if I
implied that it would; I certainly did not intend to.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the mesa-dev