Have Pipelines which are to execute on all agents skip agents which are not currently online



  • Avatar
    Ian Bridson

     Hi Lee

    I agree that  Go should timeout a job if an agent has lost contact or is unavailable for a given period of time, to avoid the pipeline just sitting there, but I am not sure why that is stopping other agents from running the job, is there more to it?

    If you have a build job that is running on lots of agents then if runOnallAgents=true multiple jobs are spawned that complete in parallel provided that an appropriate agent is available so this would work. However I guess it must be that you have multiple jobs that run in sequence, i.e. have setting

    <runif status="passed" />

    so that if an agent running a preceding job is not available the following jobs do not get executed. Assuming that there is no dependency that requires the jobs to run in order, could you try removing the runif or set it to 'any' so that all jobs can run even if another job fails?

    Comment actions Permalink
  • Avatar


    I may have mispoke.  The pipeline was stalled, coincidentally only one agent was off, I believe the other agent did execute successfully. Still, it would have been nice has the pipleine completed with either an error or a warning that not all agents executed successfully.  As far as dependencies, these are very simple single job nightly maintenance tasks which need to happen on all our build machines for environemnt controls, so there are no downstream dependencies.  While there is an implied dependency, I do not want all pipelines to kick off every time one of these changes, so I have not created any actual downstream dependencies.


    Comment actions Permalink

Please sign in to leave a comment.