From 511c4d0f7cdbe516c94389a9dd25acbc256b1e7c Mon Sep 17 00:00:00 2001 From: Philipp Spilger <philipp.spilger@kip.uni-heidelberg.de> Date: Fri, 9 Feb 2024 13:01:59 +0100 Subject: [PATCH] feat: Add style-wise yaml-based configuration lookup Change-Id: I4b070a419600cc2d64b1ba0e0dcfdcda1c895c01 --- bin/yashchiki | 15 ++++++++++----- share/yashchiki/styles/asic/config.yaml | 5 +++++ share/yashchiki/styles/visionary/config.yaml | 7 +++++++ 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 share/yashchiki/styles/asic/config.yaml create mode 100644 share/yashchiki/styles/visionary/config.yaml diff --git a/bin/yashchiki b/bin/yashchiki index 10446bd6..e4c88342 100644 --- a/bin/yashchiki +++ b/bin/yashchiki @@ -6,6 +6,7 @@ import pathlib import subprocess import tempfile import textwrap +import yaml from typing import Optional @@ -136,18 +137,22 @@ paths = [ for path_to_check in paths: check_no_globbing(path_to_check) +config = None +with open(os.path.join("share", "yashchiki", "styles", args.style, "config.yaml")) as config_file: + config = yaml.safe_load(config_file) + # collection of environment variables used to configure the shell scripts' # behavior env = { - "DOCKER_BASE_IMAGE": "debian:bullseye" if args.style == "visionary" else "centos:7", + "DOCKER_BASE_IMAGE": config["docker_base_image"], # This needs to be here because otherwise the default python # (2.7.18) will pollute the spec and lead to a conflict # can be removed as soon as the explicit preferred version # is dropped - "DEPENDENCY_PYTHON": "python@3." + ("8.2" if args.style == "visionary" else "6.8"), - "YASHCHIKI_BUILD_SPACK_GCC": "1" if args.style == "visionary" else "0", - "YASHCHIKI_SPACK_GCC_VERSION": "11.2.0" if args.style == "visionary" else "4.8.5", - "YASHCHIKI_SPACK_GCC": "gcc@11.2.0" if args.style == "visionary" else "gcc@4.8.5", + "DEPENDENCY_PYTHON": "python@" + config["dependency_python"], + "YASHCHIKI_BUILD_SPACK_GCC": str(int(config["spack_gcc"]["build"])), + "YASHCHIKI_SPACK_GCC_VERSION": config["spack_gcc"]["version"], + "YASHCHIKI_SPACK_GCC": "gcc@" + config["spack_gcc"]["version"], "WORKSPACE": os.getcwd(), # FIXME: should not be required "CONTAINER_STYLE": args.style, "CONTAINER_BUILD_TYPE": "testing", # FIXME: should not be required diff --git a/share/yashchiki/styles/asic/config.yaml b/share/yashchiki/styles/asic/config.yaml new file mode 100644 index 00000000..ef427c02 --- /dev/null +++ b/share/yashchiki/styles/asic/config.yaml @@ -0,0 +1,5 @@ +docker_base_image: "centos:7" +dependency_python: "3.8.3" +spack_gcc: + build: false + version: "4.8.5" diff --git a/share/yashchiki/styles/visionary/config.yaml b/share/yashchiki/styles/visionary/config.yaml new file mode 100644 index 00000000..7b8f7f4c --- /dev/null +++ b/share/yashchiki/styles/visionary/config.yaml @@ -0,0 +1,7 @@ +docker_base_image: "debian:bullseye" +dependency_python: "3.8.2" +spack_gcc: + # Whether to build the specified gcc via spack or assume existance. + build: true + # Version to use as compiler for spack build. + version: "11.2.0" -- GitLab