On Fri, Aug 05, 2016 at 09:36:12AM +0100, Daniel P. Berrange wrote:
On Fri, Aug 05, 2016 at 10:29:17AM +0200, Pavel Hrdina wrote:
> On Thu, Aug 04, 2016 at 03:52:09PM +0100, Daniel P. Berrange wrote:
> > We are using the CentOS Jenkins server for running CI tasks.
> > Currently those tasks are maintained by people manually
> > updating the Jenkins web UI. This is a horrible interface
> > that requires 100's of mouse clicks to achieve even the
> > simplest things. It is also incredibly hard to compare
> > the config of different jobs to make sure they are working
> > in a consistent manner.
> >
> > Fortunately there are tools which can help - OpenStack
> > created the jenkins-job-builder tool which uses the Jenkins
> > REST API to create/update jobs from a simple YAML file
> > definition.
> >
> > This series thus creates a set of YAML files which will
> > (almost) replicate our current manually create config.
> >
> > I've used jenkins-job-builder in offline test mode to
> > generate Jenkins XML files and then compared them to what
> > we currently have and they are mostly the same. So there
> > should not be too many suprises lurking, but I do still
> > expect some accidental breakage in places. As such I have
> > not actually uploaded the new auto-generated job configs
> > to
ci.centos.org at this time.
> >
> > The intention is that these configs will all live in the
> > libvirt GIT server in a new 'libvirt-jenkins-ci' repository
>
> Hi Dan, wow nice job. I didn't know that there was this tool to maintain jobs
> for Jenkins. The web interface is horrible.
>
> I'm not sure why we need to build all the tools, we don't do it right now
and
> even though we are using those tools, they have nothing in common with libvirt
> projects and friends.
What do you mean by "build all the tools" ? Everything I have provided
jobs for here, we *already* have running jobs for under libvirt CI.
I meant autotools, distuitls, and both Perl jobs.
> If we need to install those tools on all nodes, we should
probably create
> another configuration/database of packages that are required to run all the jobs
> from all projects.
We shouldn't install any pre-built packages for anything that we are
capable of building from git, as git master branches cannot be assumed
to work with older binary packaged versions, especially when getting to
centos which is comparatively old. I already fixed this on the CI build
slaves by removing a bunch of packages as we had some jobs building against
things from git while other jobs we trying to build against deps from git
but then accidentally picking up parts of the binary package install, so
we have a horrible half&half build.
Well, when I was creating the Jenkins jobs, my idea was to use Fedora-rawhide
for upstream builds where upstream libvirt-python is built against upstream
libvirt and so on. For all other nodes the idea was to use system packages and
build all projects against system packages.
At least for libvirt I got the idea that it should be buildable also on older
systems like Centos6 and that was my main motivation to apply this also on
other project where it makes sense.
Pavel