[libvirt] [jenkins-ci PATCH v3 10/12] lcitool: Support building arbitrary branches

Andrea Bolognani abologna at redhat.com
Thu Aug 23 13:34:58 UTC 2018


On Thu, 2018-08-23 at 14:36 +0200, Erik Skultety wrote:
> On Wed, Aug 22, 2018 at 11:44:25AM +0200, Andrea Bolognani wrote:
> > Building master is useful for CI purposes and to debug CI
> > failures locally, but when developing we want to be able
> > to build a personal branch to validate in-progress changes.
> > 
> > Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> > ---
> >  guests/lcitool                           | 30 ++++++++++++++++--------
> >  guests/playbooks/build/jobs/defaults.yml |  1 -
> >  2 files changed, 20 insertions(+), 11 deletions(-)
> > 
> > diff --git a/guests/lcitool b/guests/lcitool
> > index 2901a92..ec81448 100755
> > --- a/guests/lcitool
> > +++ b/guests/lcitool
> > @@ -351,8 +351,13 @@ class Application:
> >              metavar="PROJECTS",
> >              help="list of projects to consider",
> >          )
> > +        self._parser.add_argument(
> > +            "-b",
> > +            metavar="BRANCH",
> > +            help="git branch to use when performing builds",
> > +        )
> 
> I agree with the idea, but the interface as proposed by the patch is not very
> convenient from user experience POV. The reason for that is having to specify a
> branch without a repo which IMHO feels incomplete, because if you actually need
> to use a custom branch, you most probably are testing a feature which means you
> want to work with your private copy of the upstream repo.
> You can modify the project's config, but that IMHO stops being convenient very
> soon as one day you want to test upstream CI failures locally and then test
> your feature the other, thus having to modify the git_url in the config each
> time. So, we need a quick cmdline override to make this a better interface.

Agreed, the current interface doesn't quite work.

> We
> also might want to have this working when building multiple projects, e.g. I'm
> working on a feature in libvirt and then propagate the necessary changes into
> virt-manager, so I want to build both projects using a custom repo and branch.
> 
> The other thing I quite don't don't agree with is having the cmdline parameter
> mandatory, as a user, I'd expect that if I don't specify the repo and branch,
> the default which we already ship would be used, so my preference would be to
> have it optional.

I'll have to think hard about this. All of the current arguments
are mandatory, so I would like to stick with that unless there's
a compelling reason not to; perhaps in this case it's okay to make
the arguments optional, but maybe all we need to do is provide a
convenient enough shorthand for "build the master branch of the
upstream repository" and the problem will basically disappear.

> Since we already had a private discussion about possible approaches, I'll leave
> summarizing that on the list to you. Nevertheless, the series doesn't really
> depend on this patch and we can already start profiting from what the other
> patches provide and work on top of that.

Yeah, let's drop this patch for now: being able to build upstream's
master branch conveniently is already a good feature to have, and
once we have that in adding more becomes feasible.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list