From 8a32b6803819cfc0a2df92303b1d93abf8932089 Mon Sep 17 00:00:00 2001 From: George Joseph <gjoseph@digium.com> Date: Fri, 12 Apr 2019 10:32:44 -0600 Subject: [PATCH] CI: Move test group config files to Jenkins One of the downaides of having things like test configuration in the git repo is that it can't be changed at runtime. You have to create a review for the changes and merge it mefore it will take effect. This review moves the data currently held in tests/CI/periodic-dailyTestGroups.json and tests/CI/gateTestGroups.json into a Jenkins Config File attached to the job definitions. This allows us to alter it from the Jenkins UI at runtime. The original files stay in the repo as documentation. Change-Id: I14b9702f6285ce1fb2420287ba0e7d3b59109763 --- tests/CI/gateTestGroups.json | 7 +++++++ tests/CI/gates.jenkinsfile | 11 ++++++++++- tests/CI/periodic-dailyTestGroups.json | 6 ++++++ tests/CI/periodics-daily.jenkinsfile | 7 ++++++- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/tests/CI/gateTestGroups.json b/tests/CI/gateTestGroups.json index d0488962ba..415a7d709b 100644 --- a/tests/CI/gateTestGroups.json +++ b/tests/CI/gateTestGroups.json @@ -1,3 +1,10 @@ +/* + * This file is for reference/documentation only. + * The live configuration is defined in the Config Files + * settings of the Asterisk Gates Jenkins job. + * This allows is to alter the parameters at runtime. + */ + [ { "name": "ari1", diff --git a/tests/CI/gates.jenkinsfile b/tests/CI/gates.jenkinsfile index bc23781d6f..a90b0cf8e0 100644 --- a/tests/CI/gates.jenkinsfile +++ b/tests/CI/gates.jenkinsfile @@ -159,7 +159,16 @@ pipeline { } } - def testGroups = readJSON file: "tests/CI/gateTestGroups.json" + def testGroups + configFileProvider([configFile(fileId: 'asterisk_gate_test_groups', variable: 'GATE_TEST_GROUPS')]) { + echo "Retrieved config file from ${env.GATE_TEST_GROUPS}" + testGroups = readJSON file: env.GATE_TEST_GROUPS + } + echo "Running test groups:" + for (def testGroup in testGroups) { + echo "${testGroup.name} ${testGroup.dir} ${testGroup.testcmd}" + } + def parallelTasks = [ : ] for (def testGroup in testGroups) { diff --git a/tests/CI/periodic-dailyTestGroups.json b/tests/CI/periodic-dailyTestGroups.json index 7f0fd7ecfa..cc837f69c7 100644 --- a/tests/CI/periodic-dailyTestGroups.json +++ b/tests/CI/periodic-dailyTestGroups.json @@ -1,3 +1,9 @@ +/* + * This file is for reference/documentation only. + * The live configuration is defined in the Config Files + * settings of the Asterisk Gates Jenkins job. + * This allows is to alter the parameters at runtime. + */ [ { "name": "ari ", diff --git a/tests/CI/periodics-daily.jenkinsfile b/tests/CI/periodics-daily.jenkinsfile index ae762f8e82..ae5a5f440c 100644 --- a/tests/CI/periodics-daily.jenkinsfile +++ b/tests/CI/periodics-daily.jenkinsfile @@ -91,7 +91,12 @@ pipeline { } } - def testGroups = readJSON file: "tests/CI/periodic-dailyTestGroups.json" + def testGroups + configFileProvider([configFile(fileId: 'asterisk_daily_test_groups', variable: 'DAILY_TEST_GROUPS')]) { + echo "Retrieved config file from ${env.DAILY_TEST_GROUPS}" + testGroups = readJSON file: env.DAILY_TEST_GROUPS + } + def parallelTasks = [ : ] for (def testGroup in testGroups) { -- GitLab