NWChem/.gitlab-ci.yml
2022-08-18 10:48:44 -07:00

300 lines
8.5 KiB
YAML

stages:
- build
- test
variables:
USE_MPI: Y
USE_NOIO: 1
USE_LIBXC: 1
NWCHEM_MODULES: "all python"
OMP_NUM_THREADS: 1
NWCHEM_LONG_PATHS: Y
GIT_CLEAN_FLAGS: -ffdx -e bin
GIT_DEPTH: 32
.linuxrhel6_template: &beforescript_linuxrhel6
before_script:
- module purge
- export LD_LIBRARY_PATH=/usr/lib/mpich/lib
- export PATH=/usr/lib/mpich/bin:/bin:/usr/bin:.
- export NWCHEM_TARGET=LINUX
.linuxubuntu_template: &beforescript_linuxubuntu
before_script:
- export NWCHEM_TARGET=LINUX
- export PATH=/home/edo/apps/mpich314_i686/bin:/usr/bin:/bin:.
- export LD_LIBRARY_PATH=/home/edo/apps/mpich314_i686/lib:/home/edo/apps/OpenBLAS.i386/lib
.compile_template: &compile_step
script:
- if [ "$(lsb_release -i|cut -c 17-)" == "CentOS" ]; then export USE_CENTOS="1" ; else export USE_CENTOS="0" ; fi
- if [ "$(lsb_release -i |cut -f 2)" == "Ubuntu" ] && [ "$(lsb_release -r|cut -c10-11)" == "16" ]; then SCALAPACK_LIB="-lscalapack-openmpi -lblacsCinit-openmpi -lblacs-openmpi -lopenblas"; fi
- env |grep CI_
- printenv PATH
- printenv LD_LIBRARY_PATH || true
- env|grep MPI || true
- which mpif90
- env|egrep BLAS
- env|egrep SCALAP || true
- env|egrep -i mkl || true
- export NWCHEM_TOP=$CI_PROJECT_DIR
- if [ "$(lsb_release -i|cut -c 17-)" == "CentOS" ]; then export NWCHEM_TOP=$HOME/$CI_PROJECT_DIR ; fi
- cd $NWCHEM_TOP/src
- rm -rf tools/ga-* ||true
- rm -rf libext/libext_utils/cmake*macos* || true
- make nwchem_config
- make -j3
- ../contrib/getmem.nwchem
only:
- master
- /^release-.*$/
- /^hotfix/.*$/
# except:
# changes:
# - ".travis.yml"
# - "travis/*"
.test_template: &test_step
variables:
GIT_CLEAN_FLAGS: -ffdx -e bin -e build -e install
script:
# - if [ "$FC" == "ifort" ]; then source /opt/intel/compilers_and_libraries_2019/linux/bin/compilervars.sh intel64 ; fi
# - if [ "$FC" == "ifx" ]; then source /opt/intel/oneapi/setvars.sh ; fi
- export NWCHEM_TOP=$CI_PROJECT_DIR
- if [ "$(lsb_release -i|cut -c 17-)" == "CentOS" ]; then export USE_CENTOS="1" ; else export USE_CENTOS="0" ; fi
- if [ "$USE_CENTOS" == "1" ]; then export NWCHEM_TOP=$HOME/$CI_PROJECT_DIR ; fi
- if [ "$USE_CENTOS" == "1" ]; then mkdir -p $NWCHEM_TOP/bin/LINUX64 ; scp -p edo@10.0.2.2:gitlab/nwchem_centos8 $NWCHEM_TOP/bin/LINUX64/nwchem ; fi
- if [ "$FC" == "ifort" ]; then export NWCHEM_EXECUTABLE=${NWCHEM_TOP}/../binaries/nwchem_intel; fi
- if [ "$FC" == "ifx" ]; then export NWCHEM_EXECUTABLE=${NWCHEM_TOP}/../binaries/nwchem_ifx; fi
- if [ "$FC" == "flang" ]; then export NWCHEM_EXECUTABLE=${NWCHEM_TOP}/../binaries/nwchem_flang; fi
- env|egrep -i mkl || true
- env|egrep LD_LIBR || true
- cd $NWCHEM_TOP/QA
- NNPROCS=1
- if [ "$(uname -s)" == "Darwin" ]; then NNPROCS=3; fi
- if [ "$(uname -s)" == "Linux" ]; then NNPROCS=3; fi
- if [ "$USE_CENTOS" == "1" ]; then NNPROCS=3; fi
- env | grep CI_ || true
- env | grep PATH || true
- which mpirun || true
- if [[ "$NWCHEM_TARGET" != "LINUX" && "$FC" != "ifx" && ( "$CI_RUNNER_TAGS" == "ubuntu_xenial" || "$CI_RUNNER_TAGS" == "ubuntu_bionic" || "$CI_RUNNER_TAGS" = "macos" ) ]]; then ./doqmtests.mpi $NNPROCS ; else ./doqmtests.mpi $NNPROCS fast ; fi
only:
- master
- /^release-.*$/
- /^hotfix/.*$/
# except:
# changes:
# - ".travis.yml"
# - "travis/*"
.intel_template: &intel_sourcing
before_script:
- export NWCHEM_TOP=$CI_PROJECT_DIR
# - source /opt/intel/compilers_and_libraries_2019/linux/bin/compilervars.sh intel64
- source /opt/intel/oneapi/setvars.sh
- export NWCHEM_EXECUTABLE=${NWCHEM_TOP}/../binaries/nwchem_intel
- export PYTHONVERSION=3.8
- export FC=ifort
.intel_template: &ifx_sourcing
before_script:
- export NWCHEM_TOP=$CI_PROJECT_DIR
- source /opt/intel/oneapi/setvars.sh
- export NWCHEM_EXECUTABLE=${NWCHEM_TOP}/../binaries/nwchem_ifx
- export PYTHONVERSION=3.8
- export FC=ifx
.flang_template: &flang_sourcing
before_script:
- source /data/opt/AMD/setenv_AOCC.sh
- export LD_LIBRARY_PATH=/home/edo/apps/ompi402.flang/lib:$LD_LIBRARY_PATH
- export PATH=/home/edo/apps/ompi402.flang/bin:$PATH
- export NWCHEM_EXECUTABLE=${NWCHEM_TOP}/../binaries/nwchem_flang
- export FC=flang
.centos8_template: &centos8_sourcing
before_script:
- export LD_LIBRARY_PATH=/usr/lib64/mpich/lib
- export PATH=/usr/lib64/mpich/bin/:/usr/bin:/bin:.
linux64_centos8:build_gcc:
stage: build
<<: *centos8_sourcing
<<: *compile_step
variables:
BLAS_SIZE: 8
SCALAPACK_SIZE: 8
BUILD_OPENBLAS: 1
BUILD_SCALAPACK: 1
PATH: "/usr/lib64/mpich/bin/:/usr/bin:/bin:."
ARMCI_NETWORK: "MPI-TS"
after_script:
- export NWCHEM_TOP=$HOME/$CI_PROJECT_DIR
- scp -p ${NWCHEM_TOP}/bin/LINUX64/nwchem edo@10.0.2.2:gitlab/nwchem_centos8
tags:
- centos8
linux64_ubuntu:build_gcc:
stage: build
<<: *compile_step
variables:
# BLAS_LIB: "-lopenblas"
# LAPACK_LIB: "-lopenblas"
# SCALAPACK_LIB: "-lscalapack-openmpi -lopenblas"
BUILD_SCALAPACK: 1
BUILD_OPENBLAS: 1
BLAS_SIZE: 8
SCALAPACK_SIZE: 8
USE_OPENMP: 1
ARMCI_NETWORK: "MPI-PR"
tags:
- ubuntu_xenial
linux64_ubuntu:build_flang:
stage: build
<<: *flang_sourcing
<<: *compile_step
variables:
FC: flang
BUILD_SCALAPACK: 1
BUILD_OPENBLAS: 1
BLAS_SIZE: 8
SCALAPACK_SIZE: 8
ARMCI_NETWORK: "MPI-PR"
after_script:
- export NWCHEM_TOP=$CI_PROJECT_DIR
- echo "NWCHEM_TOP is " $NWCHEM_TOP
- mkdir -p ${NWCHEM_TOP}/../binaries || true
- cp ${NWCHEM_TOP}/bin/LINUX64/nwchem ${NWCHEM_TOP}/../binaries/nwchem_flang
tags:
- ubuntu_bionic
linux64_ubuntu:build_intel:
stage: build
<<: *intel_sourcing
<<: *compile_step
variables:
FC: ifort
BLAS_SIZE: 8
SCALAPACK_SIZE: 8
BUILD_SCALAPACK: 1
BUILD_OPENBLAS: 1
ARMCI_NETWORK: "MPI-PR"
USE_FPICF: "Y"
after_script:
- export NWCHEM_TOP=$CI_PROJECT_DIR
- echo "NWCHEM_TOP is " $NWCHEM_TOP
- mkdir -p ${NWCHEM_TOP}/../binaries || true
- cp ${NWCHEM_TOP}/bin/LINUX64/nwchem ${NWCHEM_TOP}/../binaries/nwchem_intel
tags:
- ubuntu_bionic
linux64_ubuntu:build_ifx:
stage: build
<<: *ifx_sourcing
<<: *compile_step
variables:
FC: ifort
BLAS_SIZE: 8
SCALAPACK_SIZE: 8
BUILD_SCALAPACK: 1
BUILD_OPENBLAS: 1
ARMCI_NETWORK: "SOCKETS"
USE_FPICF: "Y"
after_script:
- export NWCHEM_TOP=$CI_PROJECT_DIR
- echo "NWCHEM_TOP is " $NWCHEM_TOP
- mkdir -p ${NWCHEM_TOP}/../binaries || true
- cp ${NWCHEM_TOP}/bin/LINUX64/nwchem ${NWCHEM_TOP}/../binaries/nwchem_ifx
tags:
- ubuntu_bionic
linux_ubuntu:build_gcc:
stage: build
<<: *beforescript_linuxubuntu
<<: *compile_step
variables:
PATH: "/home/edo/apps/mpich314_i686/bin:/usr/bin:/bin:."
LD_LIBRARY_PATH: "/home/edo/apps/mpich314_i686/lib"
NWCHEM_MODULES: "all"
BUILD_SCALAPACK: 1
BUILD_OPENBLAS: 1
BLAS_SIZE: 4
SCALAPACK_SIZE: 4
ARMCI_NETWORK: "MPI-PR"
tags:
- ubuntu_xenial
linux_ubuntu:run_gcc:
stage: test
needs: ["linux_ubuntu:build_gcc"]
<<: *beforescript_linuxubuntu
<<: *test_step
tags:
- ubuntu_xenial
macos:build_gcc:
stage: build
<<: *compile_step
variables:
# BLASOPT: "-L/usr/local/opt/openblas/lib -lopenblas"
# LAPACK_LIB: "-L/usr/local/opt/openblas/lib -lopenblas"
# SCALAPACK_LIB: "-L/usr/local/opt/scalapack/lib/ -lscalapack -L/usr/local/opt/openblas/lib -lopenblas"
BUILD_SCALAPACK: 1
BUILD_OPENBLAS: 1
BLAS_SIZE: 8
SCALAPACK_SIZE: 8
ARMCI_NETWORK: "MPI-PR"
USE_DCOMBSSQPATCH: "Y"
PATH: "/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin"
tags:
- macos
#
linux64_centos8:run_gcc:
stage: test
needs: ["linux64_centos8:build_gcc"]
<<: *centos8_sourcing
<<: *test_step
tags:
- centos8
linux64_ubuntu:run_gcc:
stage: test
needs: ["linux64_ubuntu:build_gcc"]
<<: *test_step
tags:
- ubuntu_xenial
linux64_ubuntu:run_flang:
stage: test
needs: ["linux64_ubuntu:build_flang"]
<<: *flang_sourcing
<<: *test_step
tags:
- ubuntu_bionic
linux64_ubuntu:run_intel:
stage: test
needs: ["linux64_ubuntu:build_intel"]
<<: *intel_sourcing
<<: *test_step
tags:
- ubuntu_bionic
linux64_ubuntu:run_ifx:
stage: test
needs: ["linux64_ubuntu:build_ifx"]
<<: *ifx_sourcing
<<: *test_step
tags:
- ubuntu_bionic
macos:run_gcc:
stage: test
needs: ["macos:build_gcc"]
variables:
PATH: "/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin"
<<: *test_step
tags:
- macos