How can I set the job timeout using the Jenkins DS

2019-04-07 23:12发布

问题:

How can I use the Jenkins DSL to set the job timeout to 10 minutes ?

From http://job-dsl.herokuapp.com/, I can enter

job {
  name 'ci'
  description 'Build and test the app.'
  wrappers {    
     timeout()
   }
}

and it generates the following block for the timeout, with a default of 3 minutes.

<buildWrappers>
    <hudson.plugins.build__timeout.BuildTimeoutWrapper>
        <strategy class='hudson.plugins.build_timeout.impl.AbsoluteTimeOutStrategy'>
            <timeoutMinutes>3</timeoutMinutes>
        </strategy>
        <operationList></operationList>
    </hudson.plugins.build__timeout.BuildTimeoutWrapper>
</buildWrappers>

What do I need to enter as the 'timeoutClosure' to get the DSL to generate

<timeoutMinutes>10</timeoutMinutes>

instead ?

回答1:

The Job DSL reference says that timeout takes a closure with absolute() for this case:

job {
  wrappers {
    timeout {
      absolute(minutes = 10)
    }
  }
}

You can omit the minutes = prefix, but I find it's better to leave it explicit as to what the unit of time is.