name: NWChem_CI_archs on: push: 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-18.04 strategy: matrix: include: - arch: aarch64 distro_short: ubuntu distro: ubuntu18.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: ubuntu18.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@v2 with: path: | ~/cache key: ${{ runner.os }}-${{ matrix.mpi_impl}}-${{ matrix.distro}}-${{ matrix.arch}}-nwchem-v009 - uses: actions/checkout@v2 name: Checkout with: fetch-depth: 40 - name: tools_checkout run: | ls -l cd src/tools ./get-tools-github cd .. mkdir -p ../bin/LINUX64 gcc -o ../bin/LINUX64/depend.x config/depend.c make USE_INTERNALBLAS=y nwchem_config NWCHEM_MODULES="${{ matrix.nwchem_modules }}" make USE_INTERNALBLAS=y deps_stamp rm -f ../bin/LINUX64/depend.x - 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.0.9 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