NWChem_CI_archs #282
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: NWChem_CI_archs | |
on: | |
push: | |
paths-ignore: | |
- .gitlab-ci.yml | |
pull_request: | |
release: | |
schedule: | |
- cron: '0 0 * * SUN' | |
repository_dispatch: | |
types: [backend_automation] | |
workflow_dispatch: | |
jobs: | |
build_archs: | |
if: | | |
github.event_name == 'schedule' || | |
(!contains(github.event.head_commit.message, 'ci skip') && (contains(github.event.head_commit.message, 'do_extra_archs')||github.event_name == 'workflow_dispatch')) | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- arch: aarch64 | |
distro_short: ubuntu | |
distro: ubuntu20.04 | |
ftarget: " TARGET=ARMV8" | |
blas: "build_openblas" | |
scalapack: "off" | |
nwchem_modules: "tinyqmpw" | |
mpi_impl: "openmpi" | |
fc: "gfortran" | |
- arch: aarch64 | |
distro_short: ubuntu | |
distro: ubuntu20.04 | |
ftarget: " TARGET=ARMV8" | |
blas: "build_openblas" | |
scalapack: "off" | |
nwchem_modules: "tinyqmpw" | |
mpi_impl: "mpich" | |
fc: "nvfortran" | |
- arch: ppc64le | |
distro_short: ubuntu | |
distro: ubuntu20.04 | |
blas: "build_openblas" | |
scalapack: "on" | |
ftarget: " TARGET=POWER8" | |
nwchem_modules: "tinyqmpw" | |
mpi_impl: "openmpi" | |
fc: "gfortran" | |
fail-fast: false | |
steps: | |
- name: Setup cache | |
id: setup-cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/cache | |
key: ${{ runner.os }}-${{ matrix.mpi_impl}}-${{ matrix.distro}}-${{ matrix.arch}}-nwchem-v009 | |
- uses: actions/checkout@v3 | |
name: Checkout | |
with: | |
fetch-depth: 40 | |
- name: tools_checkout | |
run: | | |
ls -l | |
cd src/tools | |
./get-tools-github | |
cd .. | |
make USE_INTERNALBLAS=y nwchem_config NWCHEM_MODULES="${{ matrix.nwchem_modules }}" | |
- name: reconfig when needed | |
if: steps.setup-cache.outputs.cache-hit != 'true' | |
run: | | |
cd src | |
make USE_INTERNALBLAS=y nwchem_config NWCHEM_MODULES="nwdft driver solvation" | |
- uses: uraimo/run-on-arch-action@v2 | |
name: Build and Test NWChem | |
id: build | |
with: | |
arch: ${{ matrix.arch }} | |
distro: ${{ matrix.distro }} | |
# Not required, but speeds up builds | |
githubToken: ${{ github.token }} | |
# Create cached/volume directories on host | |
setup: | | |
mkdir -p ~/cache | |
# Mount the ~/cache directory as ..nwchem/cache in the container | |
dockerRunArgs: | | |
--volume "${HOME}/cache:/home/runner/work/nwchem/nwchem/cache" | |
#environment | |
env: | | |
FORCETARGET: ${{ matrix.ftarget }} | |
COMEX_MAX_NB_OUTSTANDING: 4 | |
SIMINT_MAXAM: 4 | |
MPI_IMPL: ${{ matrix.mpi_impl }} | |
ARMCI_NETWORK: MPI-TS | |
FC: ${{ matrix.fc }} | |
DISTR: ${{ matrix.distro_short }} | |
BLAS_ENV: ${{ matrix.blas }} | |
SCALAPACK_ENV: ${{ matrix.scalapack }} | |
DEBIAN_FRONTEND: noninteractive | |
shell: /bin/sh | |
install: | | |
case "${{ matrix.distro }}" in | |
ubuntu*|jessie|stretch|buster) | |
apt-get update -q -y | |
ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime | |
export DEBIAN_FRONTEND=noninteractive | |
apt-get install -y tzdata apt-utils | |
dpkg-reconfigure --frontend noninteractive tzdata | |
DEBIAN_FRONTEND=noninteractive apt-get install -q -y sudo git gfortran curl wget unzip perl rsync python3-dev python-dev cmake libnuma1 | |
;; | |
fedora*) | |
dnf -y update | |
dnf -y install git which sudo curl wget unzip openblas-serial64 perl python3-devel gcc-gfortran unzip cmake patch time | |
;; | |
esac | |
run: | | |
pwd | |
df | |
ls -lrt | |
uname -a | |
lscpu | |
./travis/build_env.sh | |
echo ' done build_env ' | |
mkdir -p cache/libext/lib || true | |
mkdir -p src/libext/lib || true | |
ls -Rl src/libext || true | |
ls -lRrt cache | |
df cache | |
rsync -av cache/libext/lib/* src/libext/lib/. || true | |
echo "cache fetched" | |
ls -Rl cache/libext/lib/ ||true | |
./travis/compile_nwchem.sh | |
echo ' done compiling' | |
rsync -av src/libext/lib/* cache/libext/lib/. || true | |
echo "cache stored" | |
ls -l cache/libext/lib/ | |
./travis/run_qas.sh | |
- name: Cache check | |
run: | | |
pwd | |
echo HOME is $HOME || true | |
ls -l ~/ || true | |
ls -Rl ~/cache || true | |
ls -l ~/ || true | |
ls -l ~/work/ || true | |
ls -l ~/work/nwchem || true | |