ci: lava: pass CI_NODE_INDEX and CI_NODE_TOTAL to lava jobs
[mesa.git] / .gitlab-ci / generate_lava.py
index a556294fbf1dc9b86ad5ad3876c38e340ae9e60c..f7631e1f30c3f8c5023b5d822d4ff8d1dd828e67 100755 (executable)
@@ -2,57 +2,42 @@
 
 from jinja2 import Environment, FileSystemLoader
 import argparse
-
-device_types = {
-    "rk3288-veyron-jaq": {
-        "gpu_version": "panfrost-t760",
-        "boot_method": "depthcharge",
-        "lava_device_type": "rk3288-veyron-jaq",
-        "kernel_image_type": "",
-    },
-    "rk3399-gru-kevin": {
-        "gpu_version": "panfrost-t860",
-        "boot_method": "depthcharge",
-        "lava_device_type": "rk3399-gru-kevin",
-        "kernel_image_type": "",
-    },
-    "sun8i-h3-libretech-all-h3-cc": {
-        "gpu_version": "lima",
-        "boot_method": "u-boot",
-        "lava_device_type": "sun8i-h3-libretech-all-h3-cc",
-        "kernel_image_type": "type: zimage",
-    },
-    "meson-gxl-s905x-libretech-cc": {
-        "gpu_version": "lima",
-        "boot_method": "u-boot",
-        "lava_device_type": "meson-gxl-s905x-libretech-cc",
-        "kernel_image_type": "type: image",
-    },
-}
+import os
 
 parser = argparse.ArgumentParser()
 parser.add_argument("--template")
 parser.add_argument("--base-artifacts-url")
-parser.add_argument("--arch")
-parser.add_argument("--device-types", nargs="+")
+parser.add_argument("--device-type")
 parser.add_argument("--kernel-image-name")
+parser.add_argument("--kernel-image-type", nargs='?', default="")
+parser.add_argument("--gpu-version")
+parser.add_argument("--boot-method")
+parser.add_argument("--lava-tags", nargs='?', default="")
+parser.add_argument("--env-vars", nargs='?', default="")
+parser.add_argument("--deqp-version")
+parser.add_argument("--arch")
+parser.add_argument("--ci-node-index")
+parser.add_argument("--ci-node-total")
 args = parser.parse_args()
 
-env = Environment(loader = FileSystemLoader('.'), trim_blocks=True, lstrip_blocks=True)
-template = env.get_template(args.template)
+env = Environment(loader = FileSystemLoader(os.path.dirname(args.template)), trim_blocks=True, lstrip_blocks=True)
+template = env.get_template(os.path.basename(args.template))
 
-for device_type in args.device_types:
-    values = {}
-    values['base_artifacts_url'] = args.base_artifacts_url
-    values['arch'] = args.arch
-    values['device_type'] = device_type
-    values['kernel_image_name'] = args.kernel_image_name
-    values['lava_device_type'] = device_types[device_type]['lava_device_type']
-    values['gpu_version'] = device_types[device_type]['gpu_version']
-    values['boot_method'] = device_types[device_type]['boot_method']
-    values['kernel_image_type'] = device_types[device_type]['kernel_image_type']
+values = {}
+values['base_artifacts_url'] = args.base_artifacts_url
+values['device_type'] = args.device_type
+values['kernel_image_name'] = args.kernel_image_name
+values['kernel_image_type'] = args.kernel_image_type
+values['gpu_version'] = args.gpu_version
+values['boot_method'] = args.boot_method
+values['tags'] = args.lava_tags
+values['env_vars'] = args.env_vars
+values['deqp_version'] = args.deqp_version
+values['arch'] = args.arch
+values['ci_node_index'] = args.ci_node_index
+values['ci_node_total'] = args.ci_node_total
 
-    f = open('results/lava-deqp-%s.yml' % device_type, "w")
-    f.write(template.render(values))
-    f.close()
+f = open('lava-deqp.yml', "w")
+f.write(template.render(values))
+f.close()