Skip to content

Commit

Permalink
Azure: Adds linux pipeline
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel G. A. Smith committed Nov 14, 2019
1 parent f6c4dc9 commit 16bf6a4
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 44 deletions.
106 changes: 106 additions & 0 deletions .azure-pipelines/azure-pipelines-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
jobs:
# Configure, build, install, and test job
- job: 'linux_build'
displayName: 'Linux Builds'
pool:
vmImage: 'ubuntu-latest'
timeoutInMinutes: 120
variables:
CTEST_OUTPUT_ON_FAILURE: 1
strategy:
maxParallel: 8
matrix:
gcc_build:
CXX_COMPILER: 'g++'
PYTHON_VER: '3.7'
C_COMPILER: 'gcc'
Fortran_COMPILER: 'gfortran'
BUILD_TYPE: 'release'

steps:
- script: |
uname -a
free -m
df -h
ulimit -a
mkdir -p $HOME/miniconda
mkdir -p $HOME/build
./.scripts/miniconda.sh
displayName: 'Build Miniconda'
- script: |
export PATH="$HOME/miniconda/bin:$PATH"
conda create -q -n p4env python=$PYTHON_VER psi4 --only-deps -c psi4/label/dev
conda activate p4env
conda install dftd3 ^
gcp ^
resp ^
pycppe ^
pylibefp ^
snsmp2 ^
mp2d ^
pytest-xdist ^
-c psi4/label/dev
conda install qcelemental ^
qcengine ^
pybind11 ^
-c conda-forge
conda list
displayName: 'Build Environment'
- script: |
export PATH="$HOME/miniconda/bin:$PATH"
python -V
python -c 'import numpy; print(numpy.version.version)'
export CXX=${CXX_COMPILER}
export CC=${C_COMPILER}
export FC=${Fortran_COMPILER}
${CXX_COMPILER} --version
${Fortran_COMPILER} --version
${C_COMPILER} --version
# * can't use conda dist of the more complicated lib pkgs (e.g., CheMPS2, PCMSolver, v2rdm)
# b/c their c++ symbols don't mix with the different Travis compilers. for other
# reasons, pkgs are being compiled less statically, sad for CI.
# * can't enable trivial plugins b/c no psi4 for them to detect at start (e.g., snsmp2)
>
cmake -Bbuild -H.
-DCMAKE_CXX_COMPILER=${CXX_COMPILER}
-DCMAKE_C_COMPILER=${C_COMPILER}
-DCMAKE_BUILD_TYPE=${BUILD_TYPE}
-DCMAKE_PREFIX_PATH=${HOME}/miniconda/envs/p4env
-DPYTHON_EXECUTABLE="${HOME}/miniconda/envs/p4env/bin/python"
-DENABLE_CheMPS2=OFF
-DENABLE_dkh=ON
-DENABLE_libefp=ON
-DENABLE_erd=OFF
-DENABLE_gdma=ON
-DENABLE_PCMSolver=OFF
-DENABLE_simint=ON
-DENABLE_snsmp2=OFF
-DENABLE_v2rdm_casscf=OFF
-DENABLE_PLUGIN_TESTING=ON
-DCMAKE_INSTALL_PREFIX=${TRAVIS_BUILD_DIR}/Install
displayName: 'Configure Build'
- script: |
export PATH="$HOME/miniconda/bin:$PATH"
cd build
../.scripts/travis_build.sh
displayName: 'Build Psi4'
- script: |
export PATH="$HOME/miniconda/bin:$PATH"
./stage/bin/psi4 ../tests/tu1-h2o-energy/input.dat
displayName: 'Spot Test'
- script: |
export PATH="$HOME/miniconda/bin:$PATH"
python ../.scripts/travis_run_test.py
python ../.scripts/travis_print_failing.py
displayName: 'CMake Test'
- script: |
export PATH="$HOME/miniconda/bin:$PATH"
PYTHONPATH=stage/lib/ pytest -v -rws --durations=15 -n 2 -m 'quick' stage/lib/psi4/tests/
displayName: 'Python Test'
2 changes: 1 addition & 1 deletion .azure-pipelines/azure-pipelines-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
timeoutInMinutes: 360
variables:
llvm.version: '7.0.1' # Note: LLVM 8.0.0 fails to build the optimized libint
mkl.version: '2019.1'
mkl.version: '2019.4'
steps:

# Check Python
Expand Down
65 changes: 22 additions & 43 deletions .scripts/miniconda.sh
Original file line number Diff line number Diff line change
@@ -1,53 +1,32 @@
set -eu -o pipefail

# Temporarily change directory to $HOME to install software
pushd .
cd "$HOME"
cd $HOME

# Install Miniconda
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
# Make OSX md5 mimic md5sum from linux, alias does not work
md5sum () {
command md5 -r "$@"
}
MINICONDA=Miniconda3-latest-MacOSX-x86_64.sh
else
MINICONDA=Miniconda3-latest-Linux-x86_64.sh
fi
#if [ "$TRAVIS_OS_NAME" == "osx" ]; then
# # Make OSX md5 mimic md5sum from linux, alias does not work
# md5sum () {
# command md5 -r "$@"
# }
# MINICONDA=Miniconda3-latest-MacOSX-x86_64.sh
#else
MINICONDA=Miniconda3-latest-Linux-x86_64.sh
#fi
MINICONDA_HOME=$HOME/miniconda
MINICONDA_MD5=$(curl -s https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *<td>\(.*\)<\/td> */\1/p')
wget -q https://repo.continuum.io/miniconda/$MINICONDA
if [[ $MINICONDA_MD5 != $(md5sum $MINICONDA | cut -d ' ' -f 1) ]]; then
echo "Miniconda MD5 mismatch"
exit 1
fi
bash $MINICONDA -b -p $MINICONDA_HOME

echo "-- Installing latest Miniconda"
if [ -d "$MINICONDA_HOME/bin" ]; then
echo "-- Miniconda latest version FOUND in cache"

# Config settings are not saved in the cache
export PIP_ARGS="-U"
export PATH=$MINICONDA_HOME/bin:$PATH

conda config --set always_yes yes --set changeps1 no
else
MINICONDA_MD5=$(curl -s https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *<td>\(.*\)<\/td> */\1/p')
echo "-- Miniconda latest version NOT FOUND in cache"
wget -q https://repo.continuum.io/miniconda/$MINICONDA
if [[ $MINICONDA_MD5 != $(md5sum $MINICONDA | cut -d ' ' -f 1) ]]; then
echo "Miniconda MD5 mismatch"
exit 1
fi
# Travis creates the cached directories for us.
# This is problematic when wanting to install Anaconda for the first time...
rm -rf "$MINICONDA_HOME"
bash $MINICONDA -b -p "$MINICONDA_HOME"

# Configure miniconda
export PIP_ARGS="-U"
export PATH=$MINICONDA_HOME/bin:$PATH

conda config --set always_yes yes --set changeps1 no
conda update --q conda
# Configure miniconda
export PIP_ARGS="-U"
export PATH=$MINICONDA_HOME/bin:$PATH

rm -f $MINICONDA
fi
echo "-- Done with latest Miniconda"
conda config --set always_yes yes --set changeps1 no
conda update --q conda

# Restore original directory
popd

0 comments on commit 16bf6a4

Please sign in to comment.