Re: [workflow-plugin] dependencies between parallel steps?

2015-01-07 Thread Jesse Glick
On Sunday, December 14, 2014 9:26:58 PM UTC-5, Alexander Bertram wrote:

 But it looks like I need to implement a waitFor primitive


JENKINS-25570 is implemented in 1.2 and adds a waitUntil step. 

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/d04116d5-9ada-4fca-a9e4-d81ffa94fe62%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [workflow-plugin] dependencies between parallel steps?

2014-12-19 Thread Alexander Bertram
Yes! That's perfect.

Are you working on JENKINS-26052 now or is this something I could submit a 
pull request for?

Will comment further on JENKINS-26052.

Best,
Alex

On Tuesday, December 16, 2014 11:45:29 PM UTC+1, Kohsuke Kawaguchi wrote:

 I think JENKINS-26052 https://issues.jenkins-ci.org/browse/JENKINS-26052 
 would be a natural solution for this. parallel() has a different emphasis 
 from yours.

 I also thought about building a library on top of workflow that lets you 
 declare tasks with dependencies and have the library figure out what to 
 execute in what order (including parallelism), which might work well for 
 this, too. The idea is something like the following:

 task(name:foo) {
   // whatever computation you fancy
   sh '...'
 }

 task(name:bar, depends:[foo]) {
   ...
 }

 task(name:zot, depends:[foo]) {
   ...
 }

 attain zot  // foo runs, then bar+zot runs in parallel


 2014-12-14 18:26 GMT-08:00 Alexander Bertram al...@bedatadriven.com 
 javascript::

 I'm experimenting with the moving some hacky build proccesses into the 
 great new workflow plugin, but not sure how to best handle dependencies 
 between parallel steps.

 The workflow is meant to test a release candidate of an R-language 
 interpreter against a library of a few thousand packages, some of which 
 depend on each other.

 ideally my flow would look like this:

 def packages = fetchPackageIds()
 builds = [:]
 for p in packages {
   builds[p] = {
  waitFor dependencyPackageIds(p)
  node { buildPackage p }
   }
 }
 parallel builds

 But it looks like I need to implement a waitFor primitive that is similar 
 to stage but local to the flow rather than global?

 Or is there another approach I'm missing?

 Thanks,
 Alex



 --
 You received this message because you are subscribed to the Google Groups 
 Jenkins Users group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to jenkinsci-use...@googlegroups.com javascript:.
 To view this discussion on the web visit 
 https://groups.google.com/d/msgid/jenkinsci-users/ba1047d2-c7bd-4b9b-9f78-463573e99877%40googlegroups.com
 .
 For more options, visit https://groups.google.com/d/optout.



 -- 
 Kohsuke Kawaguchi
  

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/1a4d8754-3df1-42fc-bfbe-a93d313b04fb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [workflow-plugin] dependencies between parallel steps?

2014-12-16 Thread Kohsuke Kawaguchi
I think JENKINS-26052 https://issues.jenkins-ci.org/browse/JENKINS-26052
would be a natural solution for this. parallel() has a different emphasis
from yours.

I also thought about building a library on top of workflow that lets you
declare tasks with dependencies and have the library figure out what to
execute in what order (including parallelism), which might work well for
this, too. The idea is something like the following:

task(name:foo) {
  // whatever computation you fancy
  sh '...'
}

task(name:bar, depends:[foo]) {
  ...
}

task(name:zot, depends:[foo]) {
  ...
}

attain zot  // foo runs, then bar+zot runs in parallel


2014-12-14 18:26 GMT-08:00 Alexander Bertram a...@bedatadriven.com:

 I'm experimenting with the moving some hacky build proccesses into the
 great new workflow plugin, but not sure how to best handle dependencies
 between parallel steps.

 The workflow is meant to test a release candidate of an R-language
 interpreter against a library of a few thousand packages, some of which
 depend on each other.

 ideally my flow would look like this:

 def packages = fetchPackageIds()
 builds = [:]
 for p in packages {
   builds[p] = {
  waitFor dependencyPackageIds(p)
  node { buildPackage p }
   }
 }
 parallel builds

 But it looks like I need to implement a waitFor primitive that is similar
 to stage but local to the flow rather than global?

 Or is there another approach I'm missing?

 Thanks,
 Alex



 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Users group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to jenkinsci-users+unsubscr...@googlegroups.com.
 To view this discussion on the web visit
 https://groups.google.com/d/msgid/jenkinsci-users/ba1047d2-c7bd-4b9b-9f78-463573e99877%40googlegroups.com
 .
 For more options, visit https://groups.google.com/d/optout.



-- 
Kohsuke Kawaguchi

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CAN4CQ4zqi2aMNutgKp-5B2ErVWiE%2BfUUXguDXkigsS32k1k7WA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[workflow-plugin] dependencies between parallel steps?

2014-12-14 Thread Alexander Bertram
I'm experimenting with the moving some hacky build proccesses into the great 
new workflow plugin, but not sure how to best handle dependencies between 
parallel steps.

The workflow is meant to test a release candidate of an R-language interpreter 
against a library of a few thousand packages, some of which depend on each 
other.

ideally my flow would look like this:

def packages = fetchPackageIds()
builds = [:]
for p in packages {
  builds[p] = {
 waitFor dependencyPackageIds(p)
 node { buildPackage p }
  }
}
parallel builds

But it looks like I need to implement a waitFor primitive that is similar to 
stage but local to the flow rather than global?

Or is there another approach I'm missing?

Thanks, 
Alex



-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/ba1047d2-c7bd-4b9b-9f78-463573e99877%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.