Skip to content

Commit

Permalink
update main from nwchemgit master plus selfhosted [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
edoapra committed Nov 2, 2024
1 parent 5d00cd0 commit 8647f6e
Show file tree
Hide file tree
Showing 3 changed files with 338 additions and 0 deletions.
197 changes: 197 additions & 0 deletions .github/workflows/github_actions_selfhosted.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
name: NWChem_CI_selfhosted

on:
release:
schedule:
- cron: '0 4 * * SAT'
repository_dispatch:
types: [backend_automation]
workflow_dispatch:
jobs:
build_workflow:
uses: ./.github/workflows/update_main.yml
secrets:
inherit
build:
if: |
github.event_name == 'schedule' ||
(!contains(github.event.head_commit.message, 'ci skip'))
needs: [build_workflow]
runs-on: ${{ matrix.os }}
timeout-minutes: 2880
strategy:
matrix:
os:
- [self-hosted, ubuntu1604]
blas: [build_openblas]
blas_size:
- 8
experimental: [false]
armci_network:
- MPI-PR
nwchem_modules:
- "all python xtb"
fc:
- gfortran
use_simint:
- 1
use_libxc:
- 1
use_tblite:
- 1
build_plumed:
- 1
branch:
- main
include:
- os: [self-hosted, ubuntu1804]
experimental: false
mpi_impl: intel
armci_network: MPI-TS
nwchem_modules: "all python xtb"
fc: ifort
blas: "build_openblas"
use_libxc: 1
use_openmp: 2
use_tblite: 1
simint_vector: avx2
- os: [self-hosted, ubuntu1604]
experimental: false
mpi_impl: intel
armci_network: SOCKETS
nwchem_modules: "all python xtb"
fc: ifx
blas: "build_openblas"
use_libxc: 1
use_tblite: 1
simint_vector: avx2
- os: [self-hosted, fedora]
experimental: false
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "all python xtb"
fc: gfortran
blas: "build_openblas"
use_libxc: 1
use_simint: 1
use_openmp: 2
use_tblite: 1
simint_vector: scalar
branch: main
- os: [self-hosted, ubuntu2304]
experimental: false
mpi_impl: openmpi
armci_network: MPI-PT
nwchem_modules: "all python xtb"
fc: gfortran
blas: "build_openblas"
use_libxc: 1
use_openmp: 2
use_tblite: 1
simint_vector: scalar
branch: main
- os: [self-hosted, osx-arm64, ajay]
experimental: false
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "all python "
fc: gfortran
blas: "build_openblas"
use_libxc: 1
use_simint: 1
simint_vector: scalar
branch: main
- os: [self-hosted, osx-x64]
experimental: false
mpi_impl: openmpi
armci_network: MPI-TS
nwchem_modules: "all python xtb"
fc: gfortran
blas: "build_openblas"
use_libxc: 1
use_simint: 1
use_openmp: 2
use_tblite: 1
simint_vector: avx2
branch: main
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: 16
SIMINT_MAXAM: 4
SIMINT_VECTOR: ${{ matrix.simint_vector }}
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@v4
with:
fetch-depth: 32
ref: ${{ matrix.branch }}
clean: true
- name: Get Instruction
id: get-simd
run: |
echo "simd=$(./travis/guess_simd.sh)" >> $GITHUB_ENV
shell: bash
- name: Clear cache dir
run: |
rm -rf ~/cache || true
shell: bash
- name: Setup cache
id: setup-cache
uses: actions/cache@v4
with:
path: |
~/cache
key: |
${{ runner.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: fetch cache
if: steps.setup-cache.outputs.cache-hit == 'true'
run: |
./travis/cache_fetch.sh
- name: compile
id: compile
run: |
mytee=tee
if [[ `uname -s` == "Darwin" ]]; then mytee=gtee; fi
./travis/config_nwchem.sh | $mytee >(ts "%d%b%Y %H:%M:%S" > ../../../config.log.` date +%b%d%Y_%H:%M`)
./travis/compile_nwchem.sh | $mytee >(ts "%d%b%Y %H:%M:%S" > ../../../compile.log.` date +%b%d%Y_%H:%M`)
- 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: |
export TRAVIS_BUILD_DIR=`pwd`
unset USE_SIMINT
mytee=tee
if [[ `uname -s` == "Darwin" ]]; then mytee=gtee; dist=Darwin; fi
if test -f "/usr/lib/os-release"; then dist=$(grep ID= /etc/os-release |grep -v VERSION|head -1 |cut -c4-| sed 's/\"//g') ; fi
if [[ $dist == "fedora" ]]; then nprocs=2; else nprocs=3 ;fi
echo nprocs is $nprocs
source travis/nwchem.bashrc; cd QA && ./doqmtests.mpi $nprocs | $mytee >(ts "%d%b%Y %H:%M:%S" > ../../../../doqmtests.mpi.log.` date +%b%d%Y_%H:%M`)
shell: bash
- name: Check if QA testing has failed
if: ${{ failure() }} && steps.qa_test.outcome == 'failure'
run: |
./travis/check_qas.sh
96 changes: 96 additions & 0 deletions .github/workflows/github_actions_tahoma.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: NWChem_CI_tahoma

on:
repository_dispatch:
types: [backend_automation]
workflow_dispatch:
jobs:
build_workflow:
uses: edoapra/nwchem/.github/workflows/update_main.yml@main
secrets:
inherit
build_singularity:
needs: [build_workflow]
uses: edoapra/nwchem-singularity/.github/workflows/apptainer_action.ifx.yml@master
secrets:
inherit
test_on_tahoma:
needs: [build_singularity]
runs-on: ${{ matrix.os }}
timeout-minutes: 2880
continue-on-error: true
strategy:
matrix:
os:
- [self-hosted, centos7]
branch:
- hotfix/release-7-2-0
- master
sing_image:
- ompi41x.ifx
- ompi41x
fail-fast: false
env:
USE_LIBXC: 1
COMEX_MAX_NB_OUTSTANDING: 8
SINGULARITYENV_NWCHEM_BASIS_LIBRARY: /cluster/apps/nwchem/nwchem/src/basis/libraries/
SINGULARITYENV_SCRATCH_DIR: /big_scratch
APPTAINERENV_NWCHEM_BASIS_LIBRARY: /cluster/apps/nwchem/nwchem/src/basis/libraries/
APPTAINERENV_SCRATCH_DIR: /big_scratch
MPIRUN_NPOPT: -n
NWCHEM_EXECUTABLE: "singularity exec /big_scratch/nwchems.img nwchem "
steps:
- name: nwchem version tag
run: |
if [[ ${{ matrix.branch }} == master ]]; then
echo "nwversion=dev" >> $GITHUB_ENV
else
echo "nwversion=720" >> $GITHUB_ENV
fi
- name: dir name
run: |
echo "dirname=nwchem-${{ env.nwversion }}${{ github.nwversion }}.${{ github.run_id }}.${{ github.run_number }}.${{ matrix.sing_image }}" >> $GITHUB_ENV
- name: Checkout QA code
run: |
pwd
cd ..
rm -rf ${{ env.dirname }}
wget -q https://github.com/nwchemgit/nwchem/tarball/${{ matrix.branch }} -O - | tar -xz --exclude=src --exclude=contrib --exclude=web --exclude=examples --exclude=doc --exclude=travis --exclude="nwxc*" --exclude="chem-library-tests"
mv nwchemgit-nwchem-* ${{ env.dirname }}
ls -lr ${{ env.dirname }}/QA
shell: bash

- name: load singularity image
run: |
export https_proxy=http://proxy.emsl.pnl.gov:3128
singularity pull -F --name ./nwchems_`id -u`.img oras://ghcr.io/edoapra/nwchem/nwchem-${{ env.nwversion }}.${{ matrix.sing_image }}:latest
srun -N $SLURM_NNODES -n $SLURM_NNODES cp ./nwchems_`id -u`.img /big_scratch/nwchems.img
shell: bash
- name: run qa tests
run: |
cd ../${{ env.dirname }}/QA
source /etc/profile.d/modules.sh
module purge
module load openmpi/4.1.4
export https_proxy=http://proxy.emsl.pnl.gov:3128
export MPIRUN_PATH=`which srun`
MYNN=$(( $SLURM_NNODES*$SLURM_NTASKS_PER_NODE ))
echo MYNN is $MYNN
(echo ${{ env.nwversion }}.${{ matrix.sing_image }}; ./doqmtests.mpi $MYNN flaky ; echo ${{ env.nwversion }}.${{ matrix.sing_image }}) | tee >(ts "%d%b%Y %H:%M:%S" > ../../../../${{ env.nwversion }}.${{ matrix.sing_image }}.doqmtests.mpi.log.` date +%b%d%Y_%H:%M`)
shell: bash
- name: stop slurm job
run: |
pwd
sleep 10s
env|egrep SLUR
mytest=test_$SLURM_JOBID.sh
echo mytest is $mytest
rm -f $mytest
cat <<EOF > /home/edo/$mytest
#/bin/bash
#scancel -f --signal=TERM -v $SLURM_JOBID
scancel -v $SLURM_JOBID
EOF
chmod +x /home/edo/$mytest
shell: bash

45 changes: 45 additions & 0 deletions .github/workflows/update_main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: update_main_branch

on:
schedule:
- cron: '0 0 * * *'
repository_dispatch:
types: [backend_automation]
workflow_dispatch:
workflow_call:
jobs:
update_branch:
if: |
github.event_name == 'schedule' ||
(!contains(github.event.head_commit.message, 'ci skip'))
runs-on: [ubuntu-latest]
steps:
- name: Checkout nwchem
uses: actions/checkout@v4
with:
repository: nwchemgit/nwchem
persist-credentials: false
fetch-depth: 0
- name: update with cherrypicks
run: |
set -ex
echo " pwd " `pwd`
git remote rename origin upstream
git remote add origin https://github.com/edoapra/nwchem
git fetch origin
git config user.name "edoapra"
git config user.email "edoardo.apra@gmail.com"
cd .github/workflows
rm -f update_main.yml github_actions_selfhosted.yml
curl -L https://raw.githubusercontent.com/edoapra/nwchem-selfhosted/main/yaml/update_main.txt > update_main.yml
curl -L https://raw.githubusercontent.com/edoapra/nwchem-selfhosted/main/yaml/github_actions_selfhosted.txt > github_actions_selfhosted.yml
curl -L https://raw.githubusercontent.com/edoapra/nwchem-selfhosted/main/yaml/github_actions_tahoma.txt > github_actions_tahoma.yml
git add update_main.yml github_actions_selfhosted.yml github_actions_tahoma.yml
git commit -m 'update main from nwchemgit master plus selfhosted [ci skip]' update_main.yml github_actions_selfhosted.yml github_actions_tahoma.yml
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.UPDATE_TOKEN }}
repository: edoapra/nwchem
force: true
branch: ${{ github.ref }}

0 comments on commit 8647f6e

Please sign in to comment.