CI: Get job timeouts from environment
authorGeorge Joseph <gjoseph@digium.com>
Mon, 19 Nov 2018 17:59:07 +0000 (10:59 -0700)
committerGeorge Joseph <gjoseph@digium.com>
Mon, 19 Nov 2018 18:05:11 +0000 (13:05 -0500)
The job timeouts were hard coded in the jenkinsfiles which
means changes had to go through gerrit.  Now they are taken
from the following environment variables (and their defaults) that
can be set in Jenkins configuration...

TIMEOUT_GATES =      "60 MINUTES"
TIMEOUT_DAILIES =    "3 HOURS"
TIMEOUT_REF_DEBUG =  "24 HOURS"
TIMEOUT_UNITTESTS =  "30 MINUTES"

Change-Id: I673a551c1780bf665a3bc160b245da574aa4bbab

tests/CI/gates.jenkinsfile
tests/CI/periodics-daily.jenkinsfile
tests/CI/ref_debug.jenkinsfile
tests/CI/unittests.jenkinsfile

index 1839a8b..ede3353 100644 (file)
  * we need to dynamically determine which docker image we're going to use and
  * you can't do that in a delcarative pipeline.
  */
+def timeoutTime = 60
+def timeoutUnits = 'MINUTES'
+if (env.TIMEOUT_GATES) {
+       def _timeout = env.TIMEOUT_GATES.split()
+       timeoutTime = _timeout[0].toInteger()
+       timeoutUnits = _timeout[1]
+}
+
 pipeline {
        options {
                timestamps()
-               timeout(time: 60, unit: 'MINUTES')
+               timeout(time: timeoutTime, unit: timeoutUnits)
        }
        triggers {
                /*
index ba56665..26c9db9 100644 (file)
  * we need to dynamically determine which docker image we're going to use and
  * you can't do that in a delcarative pipeline.
  */
+def timeoutTime = 3
+def timeoutUnits = 'HOURS'
+if (env.TIMEOUT_DAILIES) {
+       def _timeout = env.TIMEOUT_DAILIES.split()
+       timeoutTime = _timeout[0].toInteger()
+       timeoutUnits = _timeout[1]
+}
+
 pipeline {
        options {
                timestamps()
-               timeout(time: 3, unit: 'HOURS')
+               timeout(time: timeoutTime, unit: timeoutUnits)
        }
        triggers {
                cron 'H H(0-4) * * *'
index 2c6daf0..f991349 100644 (file)
  * we need to dynamically determine which docker image we're going to use and
  * you can't do that in a delcarative pipeline.
  */
+def timeoutTime = 24
+def timeoutUnits = 'HOURS'
+if (env.TIMEOUT_REF_DEBUG) {
+       def _timeout = env.TIMEOUT_REF_DEBUG.split()
+       timeoutTime = _timeout[0].toInteger()
+       timeoutUnits = _timeout[1]
+}
+
 pipeline {
        options {
                timestamps()
-               timeout(time: 1, unit: 'DAYS')
+               timeout(time: timeoutTime, unit: timeoutUnits)
        }
        triggers {
                cron 'H H(0-4) * * 0'
index 61dac70..2916cb4 100644 (file)
  * we need to dynamically determine which docker image we're going to use and
  * you can't do that in a delcarative pipeline.
  */
+def timeoutTime = 30
+def timeoutUnits = 'MINUTES'
+if (env.TIMEOUT_UNITTESTS) {
+       def _timeout = env.TIMEOUT_UNITTESTS.split()
+       timeoutTime = _timeout[0].toInteger()
+       timeoutUnits = _timeout[1]
+}
+
 pipeline {
        options {
                timestamps()
-               timeout(time: 30, unit: 'MINUTES')
+               timeout(time: timeoutTime, unit: timeoutUnits)
        }
        triggers {
                /*