Open CI Scripts: Initial Commit

* build_helper: Python script which builds sets
of configurations from a json file input
* checkpatch: Bash scripts helping with running checkpatch
* cppcheck: Bash script helping with running cppcheck
* lava_helper: Python script which generates a lava job
definition and parses the output of a lava dispatcher
* tfm_ci_pylib: Generic Python module for Open CI
* configs: Directory storing reference configurations

Change-Id: Ibda0cbfeb5b004b35fef3c2af4cb5c012f2672b4
Signed-off-by: Galanakis, Minos <minos.galanakis@linaro.org>
diff --git a/build_helper/build_helper_configs.py b/build_helper/build_helper_configs.py
new file mode 100644
index 0000000..b2976de
--- /dev/null
+++ b/build_helper/build_helper_configs.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+
+""" builtin_configs.py:
+
+    Default configuration files used as reference """
+
+from __future__ import print_function
+
+__copyright__ = """
+/*
+ * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+ """
+__author__ = "Minos Galanakis"
+__email__ = "minos.galanakis@linaro.org"
+__project__ = "Trusted Firmware-M Open CI"
+__status__ = "stable"
+__version__ = "1.0"
+
+
+# Configure build manager to build several combinations
+config_AN521 = {"platform": ["AN521"],
+                "compiler": ["GNUARM"],
+                "config": ["ConfigRegression",
+                           "ConfigDefault",
+                           "ConfigCoreTest"],
+                "build": ["Debug"],
+                "with_mcuboot": [True],
+                # invalid configuations can be added as tuples of adjustable
+                # resolution "AN521" will reject all combinations for that
+                # platform while ("AN521", "GNUARM") will only reject GCC ones
+                "invalid": []
+                }
+
+_builtin_configs = {"AN521_gnuarm_Config_DRC": config_AN521}
+
+if __name__ == '__main__':
+    import os
+    import sys
+    try:
+        from tfm_ci_pylib.utils import export_config_map
+    except ImportError:
+        dir_path = os.path.dirname(os.path.realpath(__file__))
+        sys.path.append(os.path.join(dir_path, "../"))
+        from tfm_ci_pylib.utils import export_config_map
+
+    if len(sys.argv) == 2:
+        if sys.argv[1] == "--export":
+            export_config_map(_builtin_configs)
+    if len(sys.argv) == 3:
+        if sys.argv[1] == "--export":
+            export_config_map(_builtin_configs, sys.argv[2])