Skip to content
Snippets Groups Projects
Commit 16c1c980 authored by Takumi.Matsunobu's avatar Takumi.Matsunobu
Browse files

add build_env

parent b38064f2
No related branches found
No related tags found
No related merge requests found
Pipeline #19368 canceled
......@@ -3,10 +3,18 @@ JOBS:
FILE: templates/common/transfer_project.sh
PLATFORM: LOCAL
BUILD_ENV:
FILE: templates/real-from-d2-ana/build_env.sh
# Right now we rely on spack for building icon and having a python interpreter, so we need this dependency:
DEPENDENCIES: TRASNFER_PROJECT
WALLCLOCK: 01:00
PROCESSORS: 1
NODES: 1
BUILD_PYTHON_ENVIRONMENT:
FILE: templates/common/build_python_environment.sh
# Right now we rely on spack for building icon and having a python interpreter, so we need this dependency:
DEPENDENCIES: TRASNFER_PROJECT
DEPENDENCIES: BUILD_ENV
WALLCLOCK: 01:00
PROCESSORS: 16
NODES: 1
......
# Get some variables provided by autosubmit.
# TODO: What do we do to ensure that these variables are defined in the proj file?
WORKDIR=%HPCROOTDIR%
ICON_VERSION=%ICON.VERSION%
COMPILER=%SPACK.COMPILER%
MODULES="%MODULES%"
if [ ! -z "${MODULES}" ]; then module load ${MODULES}; fi
# If the workdir directory does not exist create it
if [ ! -d ${WORKDIR} ]; then
mkdir -p ${WORKDIR}
fi
# Go to the working directory
cd ${WORKDIR} || exit
. ${WORKDIR}/proj/platforms/common/spack_utils.sh
load_spack "%spack.init%" "%spack.root%" "%spack.url%" "%spack.branch%" "%spack.externals%" "%spack.compiler%" "%spack.disable_local_config%" "%spack.user_cache_path%" "%spack.user_config_path%" "%spack.upstreams%"
if [ ! -z "$SPACK_BUILD_ICON" ]; then
echo "cmd=$SPACK_BUILD_ICON"
# In case the autosubmit repository with the icon-nwp receipt doesn't exist, add it
if [[ $(spack repo list | grep "${WORKDIR}/proj/spack_repo") ]]; then
echo "icon spack repo was already added to repo list"
else
spack repo add ${WORKDIR}/proj/spack_repo
fi
spack load --first ${SPACK_LOAD_ICON}
else
echo "\%icon.build_cmd\% is not defined. If you want to compile icon with spack, please provide a spack compile instruction string in your build.yml"
fi
# Build dwd-icon-tools
SPACK_BUILD_DWDICONTOOLS="%DWDICONTOOLS.BUILD_CMD%"
SPACK_LOAD_DWDICONTOOLS="%DWDICONTOOLS.LOAD_CMD%"
if [ "${SPACK_LOAD_DWDICONTOOLS}" == "build_cmd" ]; then SPACK_LOAD_DWDICONTOOLS=${SPACK_BUILD_DWDICONTOOLS}; fi
if [ ! -z "$SPACK_BUILD_DWDICONTOOLS" ]; then
spack load --first ${SPACK_LOAD_DWDICONTOOLS}
fi
# Need to get ECCODES DWD definitions:
eccodes_version=$(spack spec $SPACK_BUILD_ICON | grep eccodes | grep -o "@.*%" | grep -o "[0-9\.]*")
definitions_tar_file=eccodes_definitions.edzw-${eccodes_version}-1.tar.bz2
if [ ! -f "${definitions_tar_file}" ]; then
defs_url=https://opendata.dwd.de/weather/lib/grib/${definitions_tar_file}
wget "${defs_url}"
# Decompress definitions file
tar -xf "${definitions_tar_file}"
# Create a file containing the environment variable that needs to be set in order to use DWD's definitions:
echo "export ECCODES_DEFINITION_PATH=${WORKDIR}/definitions.edzw-${eccodes_version}-1" >eccodes_defs.env
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment