Deliver participant to start a build and wait for it to finish
I've found a fair bit of help online for creating a basic participant that can automatically start a build when someone delivers to a stream (I'm doing this as a Phase 2 deliver participant), but what I can't seem to do is have the participant wait for the build to complete. The idea is to prevent the delivery from completing if the build fails. But if I try to start the build immediately (setStartBuild(true)) by forcing it to use a particular build engine (not something I want to have to do, but the API seems to require that), I get this error:
|
2 answers
Ralph Schoon (63.4k●3●36●46)
| answered Apr 18 '18, 2:27 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER The concept is called "Gated Delivery".
Comments
Ernest Crvich
commented Apr 18 '18, 11:30 p.m.
Interesting. Unfortunately letting bad code move into streams before asserting the code is good isn't so great because we're talking about use cases where "always moving forward" style development doesn't work well (due to unwanted file-level dependencies that would be injected). Literal removal of bad code from streams is often a major headache...whereas it's typically quite trivial from workspaces (Discard).
I think the concept we used back then was creating baselines/snapshots in the build and using that for the delivery. There are several things to consider especially permissions.
Ernest Crvich
commented Apr 23 '18, 12:01 p.m.
Well, each developer can't realistically have their own stream, since streams aren't owned by individuals (only team areas or project areas). If a team of 100 devs all had their own stream, the list of streams under Source Control would be ridiculously cluttered. Whereas if users simply had their own build workspace, no one but them would even know about it.
Geoffrey Clemm
commented Apr 30 '18, 6:12 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Since a workspace is owned by a user, not a process area, what process area would be used for a workspace delivery participant? |
Geoffrey Clemm (30.1k●3●30●35)
| answered Apr 21 '18, 8:46 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER The idea of a green stream is that you have your developers deliver to an intermediate stream where the continuous builds are running, and then the continuous build delivers to the "green stream" if the build succeeds. That way there is no need to try to block the deliver, which would be a bad idea since the deliver is performed on the server, and you don't want all sorts of blocked delivery transactions accumulating on the server. |
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.