From 6964c19449f1e07fc1f4e8e0364c4253a74f7fcf Mon Sep 17 00:00:00 2001 From: Philipp Spilger <philipp.spilger@kip.uni-heidelberg.de> Date: Tue, 14 Sep 2021 12:24:15 +0200 Subject: [PATCH] Install scripts and files Change-Id: Ibac6009fec47a74dfe524dae1b31a30bdc5135e5 --- .ci/Jenkinsfile | 40 +++++++++---------- .ci/Jenkinsfile_asic | 34 ++++++++-------- share/yashchiki/styles/asic/create_recipe.sh | 4 +- .../styles/visionary/create_recipe.sh | 4 +- wscript | 12 +++++- 5 files changed, 50 insertions(+), 44 deletions(-) diff --git a/.ci/Jenkinsfile b/.ci/Jenkinsfile index 016a8aed..3ed48998 100755 --- a/.ci/Jenkinsfile +++ b/.ci/Jenkinsfile @@ -29,6 +29,7 @@ pipeline { environment { CONTAINER_STYLE = "visionary" + YASHCHIKI_HOST_ENV_PATH = "${WORKSPACE}/host.env" } stages { @@ -37,7 +38,6 @@ pipeline { DOCKER_BASE_IMAGE = "debian:bullseye" DEPENDENCY_PYTHON = "python@3.8.2" YASHCHIKI_INSTALL = "${WORKSPACE}/yashchiki" - YASHCHIKI_HOST_ENV_PATH = "${WORKSPACE}/host.env" YASHCHIKI_META_DIR = "${WORKSPACE}/meta" YASHCHIKI_RECIPE_PATH = "${WORKSPACE}/visionary_recipe.def" YASHCHIKI_CACHES_ROOT = "${HOME}" @@ -73,72 +73,73 @@ pipeline { } else { sh "singularity exec /containers/stable/latest ./symwaf2ic/waf setup --project=yashchiki --clone-depth=2 --gerrit-changes=${GERRIT_CHANGE_NUMBER} --gerrit-url=ssh://hudson@${GERRIT_HOST}:${GERRIT_PORT}" } + sh "singularity exec /containers/stable/latest ./symwaf2ic/waf configure install" } } } stage('Validate environment') { steps { - sh "yashchiki/lib/yashchiki/validate_environment.sh" + sh "bash lib/yashchiki/validate_environment.sh" } } stage('Dump Meta Info') { steps { - sh "yashchiki/bin/yashchiki_dump_meta_info.sh" - sh "yashchiki/bin/yashchiki_notify_gerrit.sh -m 'Build containing this change started..'" + sh "bash bin/yashchiki_dump_meta_info.sh" + sh "bash bin/yashchiki_notify_gerrit.sh -m 'Build containing this change started..'" } } stage('Spack Fetch') { steps { script { try { - sh "yashchiki/lib/yashchiki/fetch.sh" + sh "bash lib/yashchiki/fetch.sh" } catch (Throwable t) { archiveArtifacts "errors_concretization.log" throw t } - spec_folder_in_container = sh(script: "yashchiki/lib/yashchiki/get_host_env.sh SPEC_FOLDER_IN_CONTAINER", returnStdout: true).trim() + spec_folder_in_container = sh(script: "bash lib/yashchiki/get_host_env.sh SPEC_FOLDER_IN_CONTAINER", returnStdout: true).trim() archiveArtifacts(artifacts: "sandboxes/*/$spec_folder_in_container/*.yaml", allowEmptyArchive: true) } } } stage('Deploy utilities') { steps { - sh "yashchiki/bin/yashchiki_deploy_utilities.sh" + sh "bash bin/yashchiki_deploy_utilities.sh" } } stage('Create visionary recipe') { steps { - sh "yashchiki/share/yashchiki/styles/visionary/create_recipe.sh" + sh "bash share/yashchiki/styles/visionary/create_recipe.sh" } } stage('Build sandbox') { steps { - sh "yashchiki/lib/yashchiki/build_sandbox.sh" + sh "bash lib/yashchiki/build_sandbox.sh" } } stage('Build container image') { steps { - sh "yashchiki/lib/yashchiki/build_image.sh" + sh "bash lib/yashchiki/build_image.sh" } } stage('Update build cache and export container') { steps { script { // we only want the container name, tail everything else - CONTAINER_IMAGE = sh(script: "yashchiki/bin/yashchiki_deploy_container.sh | tail -n 1", returnStdout: true).trim() + CONTAINER_IMAGE = sh(script: "bash bin/yashchiki_deploy_container.sh | tail -n 1", returnStdout: true).trim() } - sh "yashchiki/lib/yashchiki/update_build_cache.sh -c \"$CONTAINER_IMAGE\"" - sh "yashchiki/bin/yashchiki_notify_gerrit.sh -t Build -c \"$CONTAINER_IMAGE\"" + sh "bash lib/yashchiki/update_build_cache.sh -c \"$CONTAINER_IMAGE\"" + sh "bash bin/yashchiki_notify_gerrit.sh -t Build -c \"$CONTAINER_IMAGE\"" } } } post { failure { script { - cache_failed = sh(script: "yashchiki/lib/yashchiki/create_temporary_build_cache_after_failure.sh", returnStdout: true).trim() + cache_failed = sh(script: "bash lib/yashchiki/create_temporary_build_cache_after_failure.sh", returnStdout: true).trim() } - sh "yashchiki/bin/yashchiki_notify_gerrit.sh -v -1 -t Build -m \"Successfully built packages stored in cache. Resume by issuing:\nWITH_CACHE_NAME=${cache_failed}\n\nIn your next gerrit comment, NOT commit message!\"" + sh "bash bin/yashchiki_notify_gerrit.sh -v -1 -t Build -m \"Successfully built packages stored in cache. Resume by issuing:\nWITH_CACHE_NAME=${cache_failed}\n\nIn your next gerrit comment, NOT commit message!\"" } cleanup { archiveArtifacts "host.env" @@ -206,18 +207,15 @@ pipeline { } } } - environment { - YASHCHIKI_HOST_ENV_PATH = "${WORKSPACE}/host.env" - } post { success { - jesh "yashchiki/bin/yashchiki_notify_gerrit.sh -v 1 -t Tests -c '${CONTAINER_IMAGE}'" + jesh "bash bin/yashchiki_notify_gerrit.sh -v 1 -t Tests -c '${CONTAINER_IMAGE}'" } unstable { - jesh "yashchiki/bin/yashchiki_notify_gerrit.sh -v 0 -t Tests -c '${CONTAINER_IMAGE}'" + jesh "bash bin/yashchiki_notify_gerrit.sh -v 0 -t Tests -c '${CONTAINER_IMAGE}'" } failure { - jesh "yashchiki/bin/yashchiki_notify_gerrit.sh -v -1 -t Tests -c '${CONTAINER_IMAGE}'" + jesh "bash bin/yashchiki_notify_gerrit.sh -v -1 -t Tests -c '${CONTAINER_IMAGE}'" } } } diff --git a/.ci/Jenkinsfile_asic b/.ci/Jenkinsfile_asic index e5e06dfd..118a6480 100755 --- a/.ci/Jenkinsfile_asic +++ b/.ci/Jenkinsfile_asic @@ -29,6 +29,7 @@ pipeline { environment { CONTAINER_STYLE = "asic" + YASHCHIKI_HOST_ENV_PATH = "${WORKSPACE}/host.env" } stages { @@ -39,7 +40,6 @@ pipeline { // versions from system packages DEPENDENCY_PYTHON = "python@3.8.3" YASHCHIKI_INSTALL = "${WORKSPACE}/yashchiki" - YASHCHIKI_HOST_ENV_PATH = "${WORKSPACE}/host.env" YASHCHIKI_META_DIR = "${WORKSPACE}/meta" YASHCHIKI_RECIPE_PATH = "${WORKSPACE}/asic_recipe.def" YASHCHIKI_CACHES_ROOT = "${HOME}" @@ -75,75 +75,73 @@ pipeline { } else { sh "singularity exec /containers/stable/latest ./symwaf2ic/waf setup --project=yashchiki --clone-depth=2 --gerrit-changes=${GERRIT_CHANGE_NUMBER} --gerrit-url=ssh://hudson@${GERRIT_HOST}:${GERRIT_PORT}" } + sh "singularity exec /containers/stable/latest ./symwaf2ic/waf configure install" } } } stage('Validate environment') { steps { - sh "yashchiki/lib/yashchiki/validate_environment.sh" + sh "bash lib/yashchiki/validate_environment.sh" } } stage('Dump Meta Info') { steps { - sh "yashchiki/bin/yashchiki_dump_meta_info.sh" - sh "yashchiki/bin/yashchiki_notify_gerrit.sh -m 'Build containing this change started..'" + sh "bash bin/yashchiki_dump_meta_info.sh" + sh "bash bin/yashchiki_notify_gerrit.sh -m 'Build containing this change started..'" } } stage('Spack Fetch') { steps { script { try { - sh "yashchiki/lib/yashchiki/fetch.sh" + sh "bash lib/yashchiki/fetch.sh" } catch (Throwable t) { archiveArtifacts "errors_concretization.log" throw t } - spec_folder_in_container = sh(script: "yashchiki/lib/yashchiki/get_host_env.sh SPEC_FOLDER_IN_CONTAINER", returnStdout: true).trim() + spec_folder_in_container = sh(script: "lib/yashchiki/get_host_env.sh SPEC_FOLDER_IN_CONTAINER", returnStdout: true).trim() archiveArtifacts(artifacts: "sandboxes/*/$spec_folder_in_container/*.yaml", allowEmptyArchive: true) } } } stage('Deploy utilities') { steps { - sh "yashchiki/bin/yashchiki_deploy_utilities.sh" + sh "bash bin/yashchiki_deploy_utilities.sh" } } stage('Create asic recipe') { steps { - sh "yashchiki/share/yashchiki/styles/asic/create_recipe.sh" + sh "share/yashchiki/styles/asic/create_recipe.sh" } } stage('Build sandbox') { steps { - sh "yashchiki/lib/yashchiki/build_sandbox.sh" + sh "bash lib/yashchiki/build_sandbox.sh" } } stage('Build container image') { steps { - sh "yashchiki/lib/yashchiki/build_image.sh" + sh "bash lib/yashchiki/build_image.sh" } } stage('Update build cache and export container') { steps { script { // we only want the container name, tail everything else - CONTAINER_IMAGE = sh(script: "yashchiki/bin/yashchiki_deploy_container.sh | tail -n 1", returnStdout: true).trim() + CONTAINER_IMAGE = sh(script: "bin/yashchiki_deploy_container.sh | tail -n 1", returnStdout: true).trim() } - sh "yashchiki/lib/yashchiki/update_build_cache.sh -c \"$CONTAINER_IMAGE\"" - sh "yashchiki/bin/yashchiki_notify_gerrit.sh -t Build -c \"$CONTAINER_IMAGE\"" + sh "bash lib/yashchiki/update_build_cache.sh -c \"$CONTAINER_IMAGE\"" + sh "bash bin/yashchiki_notify_gerrit.sh -t Build -c \"$CONTAINER_IMAGE\"" } } } - environment { - YASHCHIKI_HOST_ENV_PATH = "${WORKSPACE}/host.env" - } post { failure { script { - cache_failed = sh(script: "yashchiki/lib/yashchiki/create_temporary_build_cache_after_failure.sh", returnStdout: true).trim() + cache_failed = sh(script: "lib/yashchiki/create_temporary_build_cache_after_failure.sh", returnStdout: true).trim() } - sh "yashchiki/bin/yashchiki_notify_gerrit.sh -v -1 -t Build -m \"Successfully built packages stored in cache. Resume by issuing:\nWITH_CACHE_NAME=${cache_failed}\n\nIn your next gerrit comment, NOT commit message!\"" + sh "bash bin/yashchiki_notify_gerrit.sh -v -1 -t Build -m \"Successfully built packages stored in cache. Resume by issuing:\nWITH_CACHE_NAME=${cache_failed}\n\nIn your next gerrit comment, NOT commit message!\"" } cleanup { archiveArtifacts "host.env" diff --git a/share/yashchiki/styles/asic/create_recipe.sh b/share/yashchiki/styles/asic/create_recipe.sh index 70e4140a..b080e55c 100755 --- a/share/yashchiki/styles/asic/create_recipe.sh +++ b/share/yashchiki/styles/asic/create_recipe.sh @@ -31,8 +31,8 @@ From: ${DOCKER_BASE_IMAGE} mount --no-mtab --bind "${JOB_TMP_SPACK}" "\${SINGULARITY_ROOTFS}/tmp/spack" # copy install scripts mkdir "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" - rsync -av "${ROOT_DIR}"/share/yashchiki/styles/asic/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" - rsync -av "${ROOT_DIR}"/lib/yashchiki/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" + rsync -av --chmod 0755 "${ROOT_DIR}"/share/yashchiki/styles/asic/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" + rsync -av --chmod 0755 "${ROOT_DIR}"/lib/yashchiki/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" rsync -av "${ROOT_DIR}"/lib/yashchiki/*.awk "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" rsync -av "${ROOT_DIR}"/share/yashchiki/patches "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" mkdir -p "\${SINGULARITY_ROOTFS}/${META_DIR_INSIDE}" diff --git a/share/yashchiki/styles/visionary/create_recipe.sh b/share/yashchiki/styles/visionary/create_recipe.sh index b0664d25..d078fdf5 100755 --- a/share/yashchiki/styles/visionary/create_recipe.sh +++ b/share/yashchiki/styles/visionary/create_recipe.sh @@ -36,8 +36,8 @@ From: ${DOCKER_BASE_IMAGE} mount --no-mtab --bind "${JOB_TMP_SPACK}" "\${SINGULARITY_ROOTFS}/tmp/spack" # copy install scripts mkdir "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" - rsync -av "${ROOT_DIR}"/share/yashchiki/styles/visionary/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" - rsync -av "${ROOT_DIR}"/lib/yashchiki/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" + rsync -av --chmod 0755 "${ROOT_DIR}"/share/yashchiki/styles/visionary/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" + rsync -av --chmod 0755 "${ROOT_DIR}"/lib/yashchiki/*.sh "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" rsync -av "${ROOT_DIR}"/lib/yashchiki/*.awk "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" rsync -av "${ROOT_DIR}"/share/yashchiki/patches "\${SINGULARITY_ROOTFS}/${SPACK_INSTALL_SCRIPTS}" mkdir -p "\${SINGULARITY_ROOTFS}/${META_DIR_INSIDE}" diff --git a/wscript b/wscript index 9f57073d..7db8e31e 100755 --- a/wscript +++ b/wscript @@ -8,4 +8,14 @@ def configure(cfg): pass def build(bld): - pass + # install /bin + for bin in bld.path.ant_glob('bin/**/*'): + bld.install_as('${PREFIX}/%s' % bin.path_from(bld.path), bin) + + # install /lib + for lib in bld.path.ant_glob('lib/**/*'): + bld.install_as('${PREFIX}/%s' % lib.path_from(bld.path), lib) + + # install /share + for share in bld.path.ant_glob('share/**/*'): + bld.install_as('${PREFIX}/%s' % share.path_from(bld.path), share) -- GitLab