[Buildbot-devel] Multiple git steps and dependencies with different projects in a build

Jared Grubb jared.grubb at gmail.com
Tue Jun 10 03:28:05 UTC 2014


Yes, ‘workdir’ is what you want, and this is the set of params I use:

               Git(codebase=“Foo",
                          workdir=“Foo",
                          repourl=“….",
                          mode='full',
                          method='fresh',
                          progress=True,
                          branch=‘master')

It does look like ‘copy’ wont let you do multiple codebases, and that is a bug in my opinion. Mind filing a Trac for that?


> On Jun 9, 2014, at 13:50, Kay Hayen <kay.hayen at gmail.com> wrote:
> 
> 
> 
> Hello Dan,
> 
> Am 09.06.2014 20:24, schrieb Dan Kegel:
>> On Mon, Jun 9, 2014 at 11:13 AM, Kay Hayen <kay.hayen at gmail.com> wrote:
>>> While I could write a script that uses git clone, I would like to use
>>> three "Git" build steps, and benefit from the caching performed by
>>> Buildbot, when doing "copy" mode. I understand using one such step,
>>> changes the build into a directory that is a checkout.
>>> 
>>> How to I refer to the other ones, i.e. how to find their checkouts on
>>> the slave, and what to set the git dir to, to use it for commiting and
>>> pushing changes.
>> 
>> In general, you can't depend on that, since the latest checkout
>> might be on a different slave.
> 
> I think you misunderstood me there. I don't mean from previous builds, 
> but I mean from previous build steps.
> 
> 
>    factory = BuildFactory()
> 
>    factory.addStep(
>         Git(
>             repourl='git at somehwere:repo1',
>             mode='copy',
>         )
>     )
> 
>    factory.addStep(
>         Git(
>             repourl='git at somehwere:repo2',
>             mode='copy',
>         )
>     )
> 
>    factory.addStep(
>         Git(
>             repourl='git at somehwere:repo3',
>             mode='copy',
>         )
>     )
> 
> Then I would like to run a script from "repo1" in "repo2" checkout, copy
> it's results into "repo3" workspace, commit, and push.
> 
> I would need a method to access things there. In the last case, I would 
> need a way to access the git checkout from "source".
> 
> If I do as you say, I could after each step, move the checkout away to a 
> safe spot, and refer to there. And in the last step, I could use my 
> knowledge that "../source" is the git checkout.
> 
> But it would be a 100% nicer, if there was a way, to specify the 
> "source" and "build" names.
> 
> The thing that makes me want to use Buildbot here, is that of course, it 
> has that nice status overview, and the ability to keep git checkouts for 
> the builders and update them incrementally, i.e. fast and without waste.
> 
> As far as I know, having multiple different "git" repos in the "source" 
> wouldn't be much of an issue, as git can handle that just fine.
> 
> From looking at 0.8.8 source, I found "workdir" argument, but it has 
> this in its code:
> 
>         # self.srcdir is where the VC system should put the sources
>         if self.mode == "copy":
>             self.srcdir = "source" # hardwired directory name, sorry
>         else:
>             self.srcdir = self.workdir
> 	
> 
> Maybe I am doing it wrong, and should have multiple builders, one per 
> repo, and them transferring data. But my means of data storage is "git" 
> in this case.
> 
> 
> Yours,
> Kay
> 	
> 
> ------------------------------------------------------------------------------
> HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
> Find What Matters Most in Your Big Data with HPCC Systems
> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> Leverages Graph Analysis for Fast Processing & Easy Data Exploration
> http://p.sf.net/sfu/hpccsystems
> _______________________________________________
> Buildbot-devel mailing list
> Buildbot-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/buildbot-devel





More information about the devel mailing list