Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
rickgrubin-noaa committed Nov 27, 2024
2 parents 3b935db + 8b32642 commit c6937e0
Show file tree
Hide file tree
Showing 70 changed files with 1,214 additions and 781 deletions.
69 changes: 53 additions & 16 deletions .github/workflows/macos-ci-aarch64.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
mkdir -p /Users/ec2-user/spack-stack/build-cache
mkdir -p /Users/ec2-user/spack-stack/source-cache
- name: create-env
- name: create-buildcache
run: |
# Get day of week to decide whether to use build caches or not
DOW=$(date +%u)
Expand All @@ -56,15 +56,13 @@ jobs:
source ./setup.sh
# Important!
export SPACK_PYTHON=/usr/bin/python3
export ENVNAME=ue-apple-clang-14.0.3
export ENVDIR=$PWD/envs/${ENVNAME}
spack clean -ab
spack bootstrap now
#
export ENVNAME=ue-apple-clang-14.0.3-buildcache
export ENVDIR=$PWD/envs/${ENVNAME}
spack stack create env --site macos.default --template unified-dev --name ${ENVNAME} --compiler apple-clang
spack env activate ${ENVDIR}
spack add ${{ inputs.specs || '' }}
export SPACK_SYSTEM_CONFIG_PATH="${ENVDIR}/site"
# Find external packages
Expand All @@ -86,8 +84,11 @@ jobs:
export -n SPACK_SYSTEM_CONFIG_PATH
# For buildcaches
spack config add config:install_tree:padded_length:200
# Set compiler and MPI specs
spack config add "packages:all:providers:mpi:[[email protected].3]"
spack config add "packages:all:providers:mpi:[[email protected].5]"
spack config add "packages:all:compiler:[[email protected]]"
# Add additional variants for MET packages, different from config/common/packages.yaml
Expand All @@ -97,8 +98,8 @@ jobs:
# *DH
# Concretize and check for duplicates
spack concretize 2>&1 | tee log.concretize.apple-clang-14.0.3
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.3 -i fms -i crtm -i esmf -i mapl
spack concretize 2>&1 | tee log.concretize.apple-clang-14.0.3-buildcache
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.3-buildcache -i fms -i crtm -i esmf -i mapl
# Add and update source cache
spack mirror add local-source file:///Users/ec2-user/spack-stack/source-cache/
Expand All @@ -121,29 +122,66 @@ jobs:
# base-env
echo "base-env ..."
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.apple-clang-14.0.3.base-env
spack buildcache create -a -u /Users/ec2-user/spack-stack/build-cache/ base-env
spack buildcache create -u /Users/ec2-user/spack-stack/build-cache/ base-env
# jedi-base-env
echo "jedi-base-env ..."
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.apple-clang-14.0.3.jedi-base-env
spack buildcache create -a -u /Users/ec2-user/spack-stack/build-cache/ jedi-base-env
spack buildcache create -u /Users/ec2-user/spack-stack/build-cache/ jedi-base-env
# jedi-ufs-env
echo "jedi-ufs-env ..."
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.apple-clang-14.0.3.jedi-ufs-env
spack buildcache create -u /Users/ec2-user/spack-stack/build-cache/ jedi-ufs-env
# the rest
echo "unified-env ..."
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.apple-clang-14.0.3.unified-env
spack buildcache create -a -u /Users/ec2-user/spack-stack/build-cache/
spack buildcache create -u /Users/ec2-user/spack-stack/build-cache/
# Remove binary cache for next round of concretization
if [ "$USE_BINARY_CACHE" = true ] ; then
spack mirror rm local-binary
fi
# Remove buildcache config settings
spack config remove config:install_tree:padded_length
# Next steps: synchronize source and build cache to a central/combined mirror?
# Cleanup
spack clean -a
spack env deactivate
- name: create-env
run: |
# Set up spack-stack
source ./setup.sh
# Important!
export SPACK_PYTHON=/usr/bin/python3
export BUILDCACHE_ENVNAME=ue-apple-clang-14.0.3-buildcache
export BUILDCACHE_ENVDIR=$PWD/envs/${BUILDCACHE_ENVNAME}
export ENVNAME=ue-apple-clang-14.0.3
export ENVDIR=$PWD/envs/${ENVNAME}
rsync -av --exclude='install' --exclude='spack.lock' --exclude='.spack_db' ${BUILDCACHE_ENVDIR}/ ${ENVDIR}/
spack env activate ${ENVDIR}
# Concretize and check for duplicates
spack concretize --force 2>&1 | tee log.concretize.apple-clang-14.0.3
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.apple-clang-14.0.3 -i fms -i crtm -i esmf -i mapl
# Add binary cache back in
spack mirror add local-binary file:///Users/ec2-user/spack-stack/build-cache/
echo "Packages in combined spack build caches:"
spack buildcache list
# Install from cache
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.apple-clang-14.0.3.unified-env
# Create modules
spack clean -a
spack module lmod refresh -y
spack stack setup-meta-modules
# Next steps: synchronize source and build cache to a central/combined mirror?
spack env deactivate
# Test environment chaining
Expand All @@ -160,7 +198,6 @@ jobs:
- name: test-env
run: |
# Set up homebrew and lmod support
eval "$(/opt/homebrew/bin/brew shellenv)"
source /opt/homebrew/opt/lmod/init/profile
Expand All @@ -170,7 +207,7 @@ jobs:
module use ${ENVDIR}/install/modulefiles/Core
module load stack-apple-clang/14.0.3
module load stack-openmpi/5.0.3
module load stack-openmpi/5.0.5
module load stack-python/3.11.7
module available
Expand Down
24 changes: 16 additions & 8 deletions .github/workflows/ubuntu-ci-x86_64-gnu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,17 +115,22 @@ jobs:
# base-env
echo "base-env ..."
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.base-env
spack buildcache create -a -u /home/ubuntu/spack-stack/build-cache/ base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ base-env
# jedi-base-env
echo "jedi-base-env ..."
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.jedi-base-env
spack buildcache create -a -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env
# jedi-ufs-env
echo "jedi-ufs-env ..."
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.gnu-11.4.0-buildcache.jedi-ufs-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-ufs-env
# the rest
echo "${TEMPLATE} ..."
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.gnu-11.4.0-buildcache.${TEMPLATE}
spack buildcache create -a -u /home/ubuntu/spack-stack/build-cache/
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/
# Remove binary cache for next round of concretization
if [ "$USE_BINARY_CACHE" = true ] ; then
Expand All @@ -145,6 +150,7 @@ jobs:
- name: create-env
run: |
# Set up spack-stack
source ./setup.sh
export BUILDCACHE_ENVNAME=ue-gcc-11.4.0-buildcache
export BUILDCACHE_ENVDIR=$PWD/envs/${BUILDCACHE_ENVNAME}
Expand All @@ -153,20 +159,22 @@ jobs:
rsync -av --exclude='install' --exclude='spack.lock' --exclude='.spack_db' ${BUILDCACHE_ENVDIR}/ ${ENVDIR}/
spack env activate ${ENVDIR}
# Concretize
# Concretize and check for duplicates
spack concretize --force 2>&1 | tee log.concretize.gnu-11.4.0
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.gnu-11.4.0 -i fms -i crtm -i esmf -i mapl
# Add binary cache back in and reindex it
# Add binary cache back in
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
echo "Packages in combined spack build caches:"
spack buildcache list
# base-env
echo "base-env ..."
# Install from cache
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.gnu-11.4.0.unified-env
# Check shared libraries
${SPACK_STACK_DIR}/util/ldd_check.py $SPACK_ENV 2>&1 | tee log.ldd_check
# Create modules
spack clean -a
spack module tcl refresh -y
spack stack setup-meta-modules
Expand Down Expand Up @@ -201,7 +209,7 @@ jobs:
module use ${ENVDIR}/install/modulefiles/Core
module load stack-gcc/11.4.0
module load stack-openmpi/5.0.3
module load stack-openmpi/5.0.5
module load stack-python/3.11.7
module available
Expand Down
24 changes: 16 additions & 8 deletions .github/workflows/ubuntu-ci-x86_64-intel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ jobs:
echo " intel-oneapi-mpi:" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
echo " buildable: false" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
echo " externals:" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
echo " - spec: [email protected]%[email protected]" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
echo " - spec: [email protected]%[email protected] +classic-names" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
echo " prefix: /opt/intel/oneapi" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml
# Add external Intel MKL and oneAPI runtime
Expand Down Expand Up @@ -155,17 +155,22 @@ jobs:
# base-env
echo "base-env ..."
spack install --fail-fast --source --no-check-signature base-env 2>&1 | tee log.install.intel-2021.10.0-buildcache.base-env
spack buildcache create -a -u /home/ubuntu/spack-stack/build-cache/ base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ base-env
# jedi-base-env
echo "jedi-base-env ..."
spack install --fail-fast --source --no-check-signature jedi-base-env 2>&1 | tee log.install.intel-2021.10.0-buildcache.jedi-base-env
spack buildcache create -a -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-base-env
# jedi-ufs-env
echo "jedi-ufs-env ..."
spack install --fail-fast --source --no-check-signature jedi-ufs-env 2>&1 | tee log.install.intel-2021.10.0-buildcache.jedi-ufs-env
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/ jedi-ufs-env
# the rest
echo "unified-env ..."
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.intel-2021.10.0-buildcache.unified-env
spack buildcache create -a -u /home/ubuntu/spack-stack/build-cache/
spack buildcache create -u /home/ubuntu/spack-stack/build-cache/
# Remove binary cache for next round of concretization
if [ "$USE_BINARY_CACHE" = true ] ; then
Expand All @@ -183,6 +188,7 @@ jobs:
- name: create-env
run: |
# Set up spack-stack
source ./setup.sh
export BUILDCACHE_ENVNAME=ue-intel-2021.10.0-buildcache
export BUILDCACHE_ENVDIR=$PWD/envs/${BUILDCACHE_ENVNAME}
Expand All @@ -191,20 +197,22 @@ jobs:
rsync -av --exclude='install' --exclude='spack.lock' --exclude='.spack_db' ${BUILDCACHE_ENVDIR}/ ${ENVDIR}/
spack env activate ${ENVDIR}
# Concretize
# Concretize and check for duplicates
spack concretize --force 2>&1 | tee log.concretize.intel-2021.10.0
${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d log.concretize.intel-2021.10.0 -i fms -i crtm -i esmf -i mapl
# Add binary cache back in and reindex it
# Add binary cache back in
spack mirror add local-binary file:///home/ubuntu/spack-stack/build-cache/
echo "Packages in combined spack build caches:"
spack buildcache list
# base-env
echo "base-env ..."
# Install from cache
spack install --fail-fast --source --no-check-signature 2>&1 | tee log.install.intel-2021.10.0.unified-env
# Check shared libraries
${SPACK_STACK_DIR}/util/ldd_check.py $SPACK_ENV 2>&1 | tee log.ldd_check
# Create modules
spack clean -a
spack module tcl refresh -y
spack stack setup-meta-modules
Expand Down
Loading

0 comments on commit c6937e0

Please sign in to comment.