In that case, you could try a stage with concurrency: 1 https://github.com/jenkinsci/workflow-plugin/blob/master/TUTORIAL.md#creating-stages
Vincent 2015-10-12 16:11 GMT+02:00 Nigel Magnay <[email protected]>: > We use the multibranch-workflow. It's ace! :-) > > Not sure how it helps though. Our ITU suite is in the same repository on > the same branch, it's currently split into a separate *job* in order to > run at a lower cadence than the main build. > > e.g: > Build #1: start 09:00. Enters ITU 09:10. Exits ITU 10:00 > Build #2 : start 09:10. 09:20 Waits @ ConsiderITU until 10:00 > Build #3 : start 09:30. 09:40 Waits @ ConsiderITU until 10:00 > > At 10:00, Build #2 does not execute ITU step, but build #3 does. > > > I could probably add a function, something like (pseudocode). Feels like a > kind of global threadlock between projects which makes me wonder if there > is already a higher-level construct already in existence. > > > node('build') { > > build(); > > if( shouldRunItu() ) > runITU(); > .. > } > > runITU() { > stage "ITU"; > } > > bool shouldRunItu() { > stage "ConsiderITU"; > > while(true) { > def builds = get_list_of_builds_for_this_project_and_branch(); > if( builds contains job in stage ITU ) > sleep for a bit; > else { > def later_builds = > filter_builds_that_are_bigger_buildnumber_than_us(builds); > def builds_itu = > filter_only_items_passed_stage_ConsiderITU(later_builds); > return ( builds_itu == 0 ); > > } > } > } > > > > > > > > > > On Mon, Oct 12, 2015 at 2:21 PM, Vincent Latombe < > [email protected]> wrote: > >> Hi Nigel, >> >> as far as I understand your statement, I think the multibranch-workflow >> plugin (currently in beta) could help. >> >> I'd get the current branch and only run the ITU stage only if it's >> currently working on master. >> >> Vincent >> >> 2015-10-12 13:05 GMT+02:00 Nigel Magnay <[email protected]>: >> >>> I'm migrating a lot of fairly hairy infrastructure around to use >>> jerkins-workflow. >>> >>> At the moment, we have a number of projects that use triggering: - >>> >>> proj-build >>> proj-ITU >>> proj-robot-tests >>> >>> What I want to migrate is - proj-build builds every commit. proj-ITU is >>> very expensive, so it gets triggered on successful proj-build builds; but - >>> it only builds against *master*, so multiple triggerings will just >>> queue it to build once. >>> >>> I'm not sure the best way to model that in workflow (or even if that's >>> the best option). >>> >>> Something like a stage that says >>> >>> 1) "if there is an 'ITU' stage currently building, wait until it >>> finishes. >>> 2) If there is another build, where the build number is later than us, >>> and that build started the ITU stage (or is, like us, waiting to enter that >>> stage) then exit. (I.E: no point in running integration tests against a >>> version that's now stale). >>> >>> Is that something do-able in workflow? >>> >>> -- >>> 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 [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/jenkinsci-users/CAPYP83RtRLXwCSV8ZqbpoA_cBg4OSzV-G30s9RhMgYqaoP_Y5Q%40mail.gmail.com >>> <https://groups.google.com/d/msgid/jenkinsci-users/CAPYP83RtRLXwCSV8ZqbpoA_cBg4OSzV-G30s9RhMgYqaoP_Y5Q%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> 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 [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-users/CAH-zGCgaCCSoKzSHFS2i0uiiaBwA%2BQ98Raq%3D-KAmRpTE-n9HWw%40mail.gmail.com >> <https://groups.google.com/d/msgid/jenkinsci-users/CAH-zGCgaCCSoKzSHFS2i0uiiaBwA%2BQ98Raq%3D-KAmRpTE-n9HWw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/CAPYP83SXD_4C9GhPKRymh7OM%3DwZFdhROcgYEsOtnU7kWSNp%3Dcw%40mail.gmail.com > <https://groups.google.com/d/msgid/jenkinsci-users/CAPYP83SXD_4C9GhPKRymh7OM%3DwZFdhROcgYEsOtnU7kWSNp%3Dcw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAH-zGCgu9yXnnSZM73-6TFn%3DgBao1bvf39OWkb_smqEn_YiW_A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
