From bcdfb903624f0d08f0796a7746dec93d886bd550 Mon Sep 17 00:00:00 2001 From: George Joseph <gjoseph@digium.com> Date: Mon, 19 Nov 2018 10:59:07 -0700 Subject: [PATCH] CI: Get job timeouts from environment 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 | 10 +++++++++- tests/CI/periodics-daily.jenkinsfile | 10 +++++++++- tests/CI/ref_debug.jenkinsfile | 10 +++++++++- tests/CI/unittests.jenkinsfile | 10 +++++++++- 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/tests/CI/gates.jenkinsfile b/tests/CI/gates.jenkinsfile index 1839a8b79e..ede335392b 100644 --- a/tests/CI/gates.jenkinsfile +++ b/tests/CI/gates.jenkinsfile @@ -10,10 +10,18 @@ * 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 { /* diff --git a/tests/CI/periodics-daily.jenkinsfile b/tests/CI/periodics-daily.jenkinsfile index ba56665059..26c9db9a21 100644 --- a/tests/CI/periodics-daily.jenkinsfile +++ b/tests/CI/periodics-daily.jenkinsfile @@ -10,10 +10,18 @@ * 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) * * *' diff --git a/tests/CI/ref_debug.jenkinsfile b/tests/CI/ref_debug.jenkinsfile index 2c6daf069b..f991349737 100644 --- a/tests/CI/ref_debug.jenkinsfile +++ b/tests/CI/ref_debug.jenkinsfile @@ -10,10 +10,18 @@ * 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' diff --git a/tests/CI/unittests.jenkinsfile b/tests/CI/unittests.jenkinsfile index 61dac7002e..2916cb4ee7 100644 --- a/tests/CI/unittests.jenkinsfile +++ b/tests/CI/unittests.jenkinsfile @@ -10,10 +10,18 @@ * 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 { /* -- GitLab