diff --git a/.ci/Jenkinsfile b/.ci/Jenkinsfile index 016a8aedd687fb7beafde765d1533a7adf1c79d5..3ed489980f749a9f275268e8611fddc35b1c3dbe 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 e5e06dfd5dfc07bce36f8c9fc9ff4aa1e685064a..118a6480e9a62d64c20f408dc481e375fa7b92df 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 70e4140a7dd85026fddf272d182cd466f6f0169f..b080e55cbdfb1e231fbe54ab634d0ec942ee604c 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 b0664d251365e39c9e2fb5353ab0569983c17046..d078fdf509d6f7f03d5ed165f1cb96115a084db6 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 9f57073dd117a8d329b772101c1cda01e62cc30e..7db8e31e5eaf3d25509eccfa89b7989ee004f682 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)