Skip to content

NWChem_CI

NWChem_CI #282

name: NWChem_CI
on:
push:
paths-ignore:
- .gitlab-ci.yml
pull_request:
release:
schedule:
- cron: '0 0 * * SUN'
repository_dispatch:
types: [backend_automation]
workflow_dispatch:
jobs:
build:
if: |
github.event_name == 'schedule' ||
(!contains(github.event.head_commit.message, 'ci skip'))
runs-on: ${{ matrix.os }}
strategy:
matrix:
blas: [build_openblas]
blas_size: [8]
os: [ubuntu-20.04, macos-11]
experimental: [false]
mpi_impl:
- openmpi
- mpich
armci_network:
- MPI-TS
xcode_version:
- 13.2.1
nwchem_modules:
- "tinyqmpw python"
- "qmandpw qmd"
- "tce"
fc:
- gfortran
exclude:
- os: macos-11
mpi_impl: mpich
nwchem_modules: "tinyqmpw python"
- os: macos-11
mpi_impl: mpich
nwchem_modules: "qmandpw qmd"
include:
- os: ubuntu-20.04
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "xtb qmd driver solvation"
fc: gfortran-9
blas: "build_openblas"
build_plumed: 1
use_openmp: 2
use_tblite: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "xtb driver solvation"
fc: gfortran-11
cc: gcc-11
blas: "build_openblas"
blas_size: 4
use_openmp: 2
use_tblite: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "xtb driver solvation"
fc: gfortran-9
blas: "build_openblas"
use_openmp: 2
use_tblite: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "xtb driver solvation"
fc: ifort
blas: "build_openblas"
blas_size: 4
use_openmp: 2
use_tblite: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "xtb driver solvation"
fc: ifort
use_openmp: 2
use_tblite: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "xtb driver solvation"
fc: nvfortran
use_openmp: 2
use_tblite: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: ARMCI
nwchem_modules: "all"
fc: gfortran
blas: "build_openblas"
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "all"
fc: gfortran
blas: "internal"
blas_size: 4
- os: ubuntu-20.04
experimental: false
mpi_impl: mpich
armci_network: MPI-PR
nwchem_modules: "tinyqmpw python"
fc: gfortran-11
cc: gcc-11
- os: ubuntu-22.04
experimental: false
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "tce"
fc: gfortran-11
cc: gcc-11
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "nwdft solvation driver"
fc: gfortran
cc: gcc
use_libxc: -1
blas: "internal"
blas_size: 8
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "qmandpw qmd"
fc: gfortran-11
cc: gcc-11
use_libxc: -1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "tinyqmpw python"
fc: amdflang
cc: amdclang
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "tce"
fc: amdflang
cc: amdclang
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: MPI-PR
nwchem_modules: "tinyqmpw python"
fc: ifort
use_openmp: 2
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "tinyqmpw python"
fc: nvfortran
cc: gcc
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: SOCKETS
nwchem_modules: "tce"
fc: ifort
use_openmp: 2
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "tce"
fc: flang
cc: clang
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: MPI-PR
nwchem_modules: "tinyqmpw python"
fc: ifort
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: SOCKETS
nwchem_modules: "tce"
fc: ifort
- os: ubuntu-20.04
experimental: true
mpi_impl: intel
armci_network: MPI-PR
nwchem_modules: "tinyqmpw python"
fc: ifx
use_openmp: 2
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-PT
nwchem_modules: "tinyqmpw python"
fc: ifort
- os: ubuntu-20.04
experimental: true
mpi_impl: intel
armci_network: SOCKETS
nwchem_modules: "tce"
fc: ifx
use_openmp: 2
- os: ubuntu-20.04
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: gfortran
cc: gcc
use_libxc: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: ifort
cc: icx
use_libxc: 1
- os: macos-11
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: gfortran-10
cc: gcc
use_libxc: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-PT
nwchem_modules: "nwdft solvation driver"
fc: gfortran-10
cc: gcc-10
use_simint: 1
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "nwdft solvation driver"
fc: nvfortran
cc: gcc
use_simint: 1
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "nwdft solvation driver"
fc: ifort
cc: icx
use_simint: 1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-PR
nwchem_modules: "tinyqmpw python"
fc: gfortran-10
cc: gcc-10
use_libxc: 1
- os: macos-11
experimental: true
mpi_impl: openmpi
armci_network: MPI-PR
nwchem_modules: "qmandpw qmd"
fc: gfortran-10
cc: gcc-10
- os: macos-12
experimental: true
mpi_impl: openmpi
armci_network: MPI-PR
nwchem_modules: "tce"
fc: gfortran-11
cc: gcc-11
xcode_version: 13.4.1
- os: macos-12
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: gfortran-11
xcode_version: 13.4.1
- os: macos-11
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "tinyqmpw"
fc: gfortran-9
blas: "accelerate"
blas_size: 4
- os: macos-12
experimental: true
mpi_impl: mpich
armci_network: MPI-PT
nwchem_modules: "nwdft solvation driver"
fc: ifort
xcode_version: 14.0.1
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "qmandpw qmd"
fc: gfortran-10
cc: gcc-10
use_openmp: 2
blas: "build_openblas"
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "qmandpw qmd"
fc: ifort
use_openmp: 2
- os: ubuntu-20.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "qmandpw qmd"
fc: nvfortran
cc: gcc
use_openmp: 2
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus"
fc: nvfortran
cc: gcc
- os: ubuntu-22.04
experimental: true
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus"
fc: gfortran
cc: gcc
- os: ubuntu-22.04
experimental: true
mpi_impl: mpich
armci_network: MPI-TS
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus"
fc: flang
cc: clang
- os: ubuntu-22.04
experimental: true
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "nwdft driver solvation mp2_grad mcscf ccsd rimp2 fcidump nwc_columbus"
fc: ifx
fail-fast: false
env:
MPI_IMPL: ${{ matrix.mpi_impl }}
ARMCI_NETWORK: ${{ matrix.armci_network }}
NWCHEM_MODULES: ${{ matrix.nwchem_modules }}
USE_SIMINT: ${{ matrix.use_simint }}
USE_LIBXC: ${{ matrix.use_libxc }}
USE_TBLITE: ${{ matrix.use_tblite }}
BUILD_PLUMED: ${{ matrix.build_plumed }}
FC: ${{ matrix.fc }}
CC: ${{ matrix.cc }}
COMEX_MAX_NB_OUTSTANDING: 4
SIMINT_MAXAM: 4
SIMINT_VECTOR: avx2
BLAS_ENV: ${{ matrix.blas }}
BLAS_SIZE: ${{ matrix.blas_size }}
USE_OPENMP: ${{ matrix.use_openmp }}
continue-on-error: ${{ matrix.experimental }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 40
- name: Get Instruction
id: get-simd
run: |
echo "simd=$(./travis/guess_simd.sh)" >> $GITHUB_ENV
shell: bash
- name: Setup cache
id: setup-cache
uses: actions/cache@v3
with:
path: |
~/cache
key: ${{ matrix.os }}-${{ matrix.mpi_impl}}-${{ matrix.fc}}-xcode${{ matrix.xcode_version}}-simint${{ matrix.use_simint}}-blas${{ matrix.blas}}-blas_size${{ matrix.blas_size}}-libxc${{matrix.use_libxc}}-tblite${{matrix.use_tblite}}-simd${{ env.simd }}-nwchemcache-v003
- name: build environment
run: |
pwd
ls -lart
./travis/build_env.sh
- name: fetch cache
if: steps.setup-cache.outputs.cache-hit == 'true'
run: |
./travis/cache_fetch.sh
- name: compile
id: compile
run: |
cc -v
./travis/config_nwchem.sh
./travis/compile_nwchem.sh
- name: Check compilation result
if: ${{ failure() }}
run: |
./travis/compile_check.sh
- name: store cache
run: |
./travis/cache_store.sh
- name: qa_test
id: qa_test
if: steps.compile.conclusion == 'success'
run: |
./travis/run_qas.sh
- name: Check if QA testing has failed
# if: steps.qa_test.outcome == 'failure' || steps.qa_test.outcome == 'cancelled'
if: ${{ failure() }} && steps.qa_test.outcome == 'failure'
run: |
./travis/check_qas.sh