From 6f20733e02d03205a81279c392ac91e6ea351164 Mon Sep 17 00:00:00 2001
From: Philipp Spilger <philipp.spilger@kip.uni-heidelberg.de>
Date: Fri, 10 Sep 2021 14:12:40 +0200
Subject: [PATCH] Make recipe filename configurable and specifiable via env var

Change-Id: I43990cebca3c57186462cb0dedc8800c5200d246
---
 .ci/Jenkinsfile                | 1 +
 .ci/Jenkinsfile_asic           | 1 +
 .ci/asic_create_recipe.sh      | 8 +++-----
 .ci/build_sandbox.sh           | 8 ++++----
 .ci/visionary_create_recipe.sh | 6 ++----
 5 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/.ci/Jenkinsfile b/.ci/Jenkinsfile
index be389480..5251eba8 100755
--- a/.ci/Jenkinsfile
+++ b/.ci/Jenkinsfile
@@ -36,6 +36,7 @@ pipeline {
 			environment {
 				DOCKER_BASE_IMAGE = "debian:bullseye"
 				DEPENDENCY_PYTHON = "python@3.8.2"
+				YASHCHIKI_RECIPE_PATH = "${WORKSPACE}/visionary_recipe.def"
 				YASHCHIKI_CACHES_ROOT = "${HOME}"
 				YASHCHIKI_SPACK_PATH = "${env.WORKSPACE}/spack"
 				YASHCHIKI_IMAGE_NAME = "singularity_visionary_temp.img"
diff --git a/.ci/Jenkinsfile_asic b/.ci/Jenkinsfile_asic
index 8ad25a5c..a97e2005 100755
--- a/.ci/Jenkinsfile_asic
+++ b/.ci/Jenkinsfile_asic
@@ -38,6 +38,7 @@ pipeline {
 				DOCKER_BASE_IMAGE = "centos:7"
 				// versions from system packages
 				DEPENDENCY_PYTHON = "python@3.8.3"
+				YASHCHIKI_RECIPE_PATH = "${WORKSPACE}/asic_recipe.def"
 				YASHCHIKI_CACHES_ROOT = "${HOME}"
 				YASHCHIKI_SPACK_PATH = "${env.WORKSPACE}/spack"
 				YASHCHIKI_IMAGE_NAME = "singularity_asic_temp.img"
diff --git a/.ci/asic_create_recipe.sh b/.ci/asic_create_recipe.sh
index 4b4428b3..67685df7 100755
--- a/.ci/asic_create_recipe.sh
+++ b/.ci/asic_create_recipe.sh
@@ -3,12 +3,10 @@
 SOURCE_DIR="$(dirname "$(readlink -m "${BASH_SOURCE[0]}")")"
 source "${SOURCE_DIR}/commons.sh"
 
-RECIPE_FILENAME="${WORKSPACE}/asic_recipe.def"
-
 # create container description file
 # * based on CentOS 7's docker image
 # * just manually install everything we need
-cat <<EOF >"${RECIPE_FILENAME}"
+cat <<EOF >"${YASHCHIKI_RECIPE_PATH}"
 Bootstrap: docker
 From: ${DOCKER_BASE_IMAGE}
 
@@ -299,10 +297,10 @@ for view in "${spack_views[@]}"; do
     (
         generate_appenv "${view}" "${view}"
         [[ "${view}" =~ ^visionary- ]] && generate_appenv "${view#visionary-}" "${view}"
-    ) >> "${RECIPE_FILENAME}"
+    ) >> "${YASHCHIKI_RECIPE_PATH}"
 
     if [ "${view}" = "visionary-simulation" ];then
-cat <<EOF >>"${RECIPE_FILENAME}"
+cat <<EOF >>"${YASHCHIKI_RECIPE_PATH}"
     export NEST_MODULES=visionarymodule
 EOF
     fi
diff --git a/.ci/build_sandbox.sh b/.ci/build_sandbox.sh
index f40fa966..c8d9d2db 100755
--- a/.ci/build_sandbox.sh
+++ b/.ci/build_sandbox.sh
@@ -14,12 +14,12 @@ unset LC_NUMERIC
 unset LC_TIME
 unset LC_MESSAGES
 
-echo "creating ${CONTAINER_STYLE}_recipe.def" >&2
+echo "creating ${YASHCHIKI_RECIPE_PATH}" >&2
 SOURCE_DIR="$(dirname "$(readlink -m "${BASH_SOURCE[0]}")")"
 "${SOURCE_DIR}/${CONTAINER_STYLE}_create_recipe.sh"
 
-echo "created ${CONTAINER_STYLE}_recipe.def" >&2
-cat "${WORKSPACE}/${CONTAINER_STYLE}_recipe.def"
+echo "created ${YASHCHIKI_RECIPE_PATH}" >&2
+cat "${YASHCHIKI_RECIPE_PATH}"
 
 # check if host-user-owned temp folder for spack build exists
 if [ ! -d "${JOB_TMP_SPACK}" ]; then
@@ -47,4 +47,4 @@ sudo rm -rf ${YASHCHIKI_SANDBOXES}/
 mkdir ${YASHCHIKI_SANDBOXES}
 
 # Do not change: special sudo permit for the host user...
-sudo -E singularity build --sandbox "${TARGET_FOLDER}" ${CONTAINER_STYLE}_recipe.def | tee out_singularity_build_${CONTAINER_STYLE}_recipe.txt
+sudo -E singularity build --sandbox "${TARGET_FOLDER}" "${YASHCHIKI_RECIPE_PATH}" | tee out_singularity_build_${CONTAINER_STYLE}_recipe.txt
diff --git a/.ci/visionary_create_recipe.sh b/.ci/visionary_create_recipe.sh
index b7e9f6a3..0d73c0b2 100755
--- a/.ci/visionary_create_recipe.sh
+++ b/.ci/visionary_create_recipe.sh
@@ -3,8 +3,6 @@
 SOURCE_DIR="$(dirname "$(readlink -m "${BASH_SOURCE[0]}")")"
 source "${SOURCE_DIR}/commons.sh"
 
-RECIPE_FILENAME="${WORKSPACE}/visionary_recipe.def"
-
 # create container description file
 # * based on Debian buster (minimal) + a few extra packages (e.g. git, python, ...)
 # * bind mount spack's fetch-cache and ccache into the container -> speed up stuff
@@ -13,7 +11,7 @@ RECIPE_FILENAME="${WORKSPACE}/visionary_recipe.def"
 # * create "spack" user in the container and run spack installation script as spack user
 #   (-> installs to /opt/spack, and creates views)
 # * provide "apps" which set environment variables to appropriate views
-cat <<EOF >"${RECIPE_FILENAME}"
+cat <<EOF >"${YASHCHIKI_RECIPE_PATH}"
 Bootstrap: docker
 From: ${DOCKER_BASE_IMAGE}
 
@@ -135,5 +133,5 @@ for view in "${spack_views[@]}"; do
     (
         generate_appenv "${view}" "${view}"
         [[ "${view}" =~ ^visionary- ]] && generate_appenv "${view#visionary-}" "${view}"
-    ) >> "${RECIPE_FILENAME}"
+    ) >> "${YASHCHIKI_RECIPE_PATH}"
 done
-- 
GitLab