CI: Move test group config files to Jenkins
authorGeorge Joseph <gjoseph@digium.com>
Fri, 12 Apr 2019 16:32:44 +0000 (10:32 -0600)
committerGeorge Joseph <gjoseph@digium.com>
Mon, 15 Apr 2019 12:51:35 +0000 (06:51 -0600)
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
tests/CI/gates.jenkinsfile
tests/CI/periodic-dailyTestGroups.json
tests/CI/periodics-daily.jenkinsfile

index d048896..415a7d7 100644 (file)
@@ -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",
index bc23781..a90b0cf 100644 (file)
@@ -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) {
index 7f0fd7e..cc837f6 100644 (file)
@@ -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 ",
index ae762f8..ae5a5f4 100644 (file)
@@ -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) {