From adc0db7f2e7ffcc03ba2bee2ba5c06dc23af099c Mon Sep 17 00:00:00 2001 From: Tammo van der Heide Date: Tue, 3 Dec 2024 12:13:04 +0100 Subject: [PATCH] Install gcc and libxc from conda-forge --- .github/workflows/build.yml | 218 ++++++++++++++++++------------------ 1 file changed, 106 insertions(+), 112 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 501fbe06..bc7baf52 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,22 +22,21 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Set up python - uses: actions/setup-python@v4 + - name: Set up miniforge + uses: conda-incubator/setup-miniconda@v3 with: - python-version: '3.x' + miniforge-version: latest + + # - name: Set up python + # uses: actions/setup-python@v4 + # with: + # python-version: '3.x' - name: Install GCC (Linux) run: | - sudo add-apt-repository ppa:ubuntu-toolchain-r/test - sudo apt-get update - sudo apt-get install -y gcc-${{ matrix.version}} gfortran-${{ matrix.version }} - sudo update-alternatives \ - --install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.version }} 100 \ - --slave /usr/bin/gfortran gfortran /usr/bin/gfortran-${{ matrix.version }} \ - --slave /usr/bin/gcov gcov /usr/bin/gcov-${{ matrix.version }} + mamba install c-compiler cxx-compiler fortran-compiler - name: Enable MPI build if: contains(matrix.mpi, 'openmpi') || contains(matrix.mpi, 'mpich') @@ -49,35 +48,30 @@ jobs: - name: Set Compiler run: | - echo "FC=gfortran" >> $GITHUB_ENV - echo "CC=gcc" >> $GITHUB_ENV + eval "$(conda shell.bash hook)" + echo "${CONDA_PREFIX}" + echo "FC=${CONDA_PREFIX}/bin/gfortran" >> $GITHUB_ENV + echo "CC=${CONDA_PREFIX}/bin/gcc" >> $GITHUB_ENV - name: Install OpenMPI if: contains(matrix.mpi, 'openmpi') - run: | - sudo apt-get update - sudo apt-get install libopenmpi-dev + run: mamba install openmpi openmpi-mpicc openmpi-mpicxx openmpi-mpifort - name: Install MPICH if: contains(matrix.mpi, 'mpich') - run: | - sudo apt-get update - sudo apt-get install mpich + run: mamba install mpich mpich-mpicc mpich-mpicxx mpich-mpifort - - name: Compile and Install libXC - run: | - git clone https://gitlab.com/libxc/libxc.git - cd libxc/ - git checkout 6.2.2 - cmake -DCMAKE_INSTALL_PREFIX=${PWD}/${BUILD_DIR}/${INSTALL_DIR} -DENABLE_FORTRAN=True -B ${BUILD_DIR} . - cd ${BUILD_DIR} - make -j2 - make install - cd ../../ + - name: Install BLAS + run: mamba install libopenblas libopenblas-ilp64 openblas openblas-ilp64 + + - name: Install libxc + run: mamba install libxc=6.2.2 - name: Set libXC search path run: | - echo "CMAKE_PREFIX_PATH=./libxc/${BUILD_DIR}/${INSTALL_DIR}/" >> $GITHUB_ENV + eval "$(conda shell.bash hook)" + echo "${CONDA_PREFIX}" + echo "CMAKE_PREFIX_PATH=${CONDA_PREFIX}/" >> $GITHUB_ENV - name: Install requirements (pip) run: | @@ -116,85 +110,85 @@ jobs: run: | cmake --install ${BUILD_DIR} - intel-build: - - strategy: - matrix: - os: [ubuntu-latest] - config: [RelWithDebInfo] - - runs-on: ${{ matrix.os }} - - env: - FC: ifx - CC: icx - CMAKE_OPTIONS: >- - -DCMAKE_BUILD_TYPE=${{ matrix.config }} - -DFYPP_FLAGS='-DTRAVIS' - -DWITH_MPI=false - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Setup Intel compiler - uses: rscohn2/setup-oneapi@v0 - with: - components: | - icx@2024.0.0 - ifx@2024.0.0 - mkl@2024.0.0 - - - name: Setup Intel environment - run: | - source /opt/intel/oneapi/setvars.sh - printenv >> ${GITHUB_ENV} - echo "FC=ifx" >> ${GITHUB_ENV} - echo "CC=icx" >> ${GITHUB_ENV} - - - name: Compile and install libXC - run: | - git clone https://gitlab.com/libxc/libxc.git - cd libxc/ - git checkout 6.2.2 - cmake -DCMAKE_INSTALL_PREFIX=${PWD}/${BUILD_DIR}/${INSTALL_DIR} -DENABLE_FORTRAN=True -B ${BUILD_DIR} . - cd ${BUILD_DIR} - make -j2 - make install - cd ../../ - - - name: Set libXC search path - run: | - echo "CMAKE_PREFIX_PATH=./libxc/${BUILD_DIR}/${INSTALL_DIR}/" >> $GITHUB_ENV - - - name: Install requirements (pip) - run: | - pip3 install --upgrade pip - pip3 install wheel - pip3 install cmake fypp numpy scipy - - - name: Set extra CMake flags (Linux) - run: | - echo "CMAKE_OPTIONS=${CMAKE_OPTIONS}" >> $GITHUB_ENV - - - name: Configure build - run: | - cmake -DCMAKE_INSTALL_PREFIX=${PWD}/${BUILD_DIR}/${INSTALL_DIR} -B ${BUILD_DIR} . - - - name: Build project - run: cmake --build ${BUILD_DIR} - - - name: Run regression tests - run: | - pushd ${BUILD_DIR} - ctest -j2 --output-on-failure - popd - - - name: Install project - run: | - cmake --install ${BUILD_DIR} + # intel-build: + + # strategy: + # matrix: + # os: [ubuntu-latest] + # config: [RelWithDebInfo] + + # runs-on: ${{ matrix.os }} + + # env: + # FC: ifx + # CC: icx + # CMAKE_OPTIONS: >- + # -DCMAKE_BUILD_TYPE=${{ matrix.config }} + # -DFYPP_FLAGS='-DTRAVIS' + # -DWITH_MPI=false + + # steps: + # - name: Checkout code + # uses: actions/checkout@v4 + + # - name: Setup Python + # uses: actions/setup-python@v4 + # with: + # python-version: 3.x + + # - name: Setup Intel compiler + # uses: rscohn2/setup-oneapi@v0 + # with: + # components: | + # icx@2024.0.0 + # ifx@2024.0.0 + # mkl@2024.0.0 + + # - name: Setup Intel environment + # run: | + # source /opt/intel/oneapi/setvars.sh + # printenv >> ${GITHUB_ENV} + # echo "FC=ifx" >> ${GITHUB_ENV} + # echo "CC=icx" >> ${GITHUB_ENV} + + # - name: Compile and install libXC + # run: | + # git clone https://gitlab.com/libxc/libxc.git + # cd libxc/ + # git checkout 6.2.2 + # cmake -DCMAKE_INSTALL_PREFIX=${PWD}/${BUILD_DIR}/${INSTALL_DIR} -DENABLE_FORTRAN=True -B ${BUILD_DIR} . + # cd ${BUILD_DIR} + # make -j2 + # make install + # cd ../../ + + # - name: Set libXC search path + # run: | + # echo "CMAKE_PREFIX_PATH=./libxc/${BUILD_DIR}/${INSTALL_DIR}/" >> $GITHUB_ENV + + # - name: Install requirements (pip) + # run: | + # pip3 install --upgrade pip + # pip3 install wheel + # pip3 install cmake fypp numpy scipy + + # - name: Set extra CMake flags (Linux) + # run: | + # echo "CMAKE_OPTIONS=${CMAKE_OPTIONS}" >> $GITHUB_ENV + + # - name: Configure build + # run: | + # cmake -DCMAKE_INSTALL_PREFIX=${PWD}/${BUILD_DIR}/${INSTALL_DIR} -B ${BUILD_DIR} . + + # - name: Build project + # run: cmake --build ${BUILD_DIR} + + # - name: Run regression tests + # run: | + # pushd ${BUILD_DIR} + # ctest -j2 --output-on-failure + # popd + + # - name: Install project + # run: | + # cmake --install ${BUILD_DIR}