Added all-MPI test program to build. #931
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: GlobalArrays_CI | |
on: | |
push: | |
pull_request: | |
release: | |
schedule: | |
- cron: '0 0 * * SUN' | |
repository_dispatch: | |
types: [backend_automation] | |
workflow_dispatch: | |
jobs: | |
build: | |
if: "!contains(github.event.head_commit.message, 'ci skip')" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
experimental: [false] | |
mpi_impl: | |
- openmpi | |
- mpich | |
armci_network: | |
- mpi3 | |
- mpi-ts | |
- ofi | |
- armci | |
- mpi-pr | |
f77: | |
- gfortran-12 | |
cc: | |
- clang | |
- gcc | |
include: | |
- os: ubuntu-latest | |
experimental: true | |
mpi_impl: mpich | |
armci_network: mpi-ts | |
f77: gfortran-11 | |
cc: gcc-11 | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: mpi-pr | |
f77: gfortran-10 | |
cc: gcc-10 | |
use_cmake: "Y" | |
- os: ubuntu-latest | |
experimental: true | |
mpi_impl: intel | |
armci_network: sockets | |
config_opts: --enable-i4 | |
f77: ifort | |
cc: icx | |
oneapi: /opt/intel/oneapi | |
- os: ubuntu-latest | |
experimental: true | |
mpi_impl: openmpi | |
armci_network: mpi-ts | |
config_opts: --enable-i4 --without-blas --enable-cxx --disable-f77 | |
f77: gfortran | |
cc: gcc | |
- os: macos-13 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: mpi-pr | |
f77: ifort | |
cc: icc | |
config_opts: LIBS=-lifcore | |
oneapi: /Users/runner/apps/oneapi | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: mpi-pr | |
f77: gfortran | |
cc: gcc | |
use_sicm: "Y" | |
- os: ubuntu-22.04 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: mpi-ts | |
config_opts: "--disable-f77 --enable-cxx" | |
f77: gfortran-10 | |
cc: gcc-10 | |
- os: macos-13 | |
experimental: true | |
mpi_impl: mpich | |
armci_network: mpi-ts | |
config_opts: "--disable-static --enable-shared" | |
f77: gfortran-13 | |
cc: clang | |
- os: macos-13 | |
experimental: true | |
use_cmake: "Y" | |
mpi_impl: mpich | |
armci_network: mpi-pr | |
f77: gfortran-13 | |
cc: clang | |
- os: ubuntu-20.04 | |
experimental: true | |
use_cmake: "Y" | |
mpi_impl: openmpi | |
armci_network: mpi-pr | |
f77: gfortran | |
cc: gcc | |
- os: ubuntu-20.04 | |
experimental: true | |
use_cmake: "Y" | |
mpi_impl: openmpi | |
armci_network: mpi-ts | |
f77: gfortran | |
cc: gcc | |
- os: ubuntu-20.04 | |
experimental: true | |
mpi_impl: intel | |
armci_network: mpi-ts | |
f77: ifort | |
cc: gcc | |
oneapi: /opt/intel/oneapi | |
exclude: | |
- armci_network: ofi | |
os: macos-latest | |
- armci_network: mpi-pr | |
mpi_impl: openmpi | |
- armci_network: mpi3 | |
mpi_impl: openmpi | |
- armci_network: ofi | |
mpi_impl: openmpi | |
fail-fast: false | |
env: | |
MPI_IMPL: ${{ matrix.mpi_impl }} | |
PORT: ${{ matrix.armci_network }} | |
ARMCI_NETWORK: ${{ matrix.armci_network }} | |
F77: ${{ matrix.f77 }} | |
CC: ${{ matrix.cc }} | |
CONFIG_OPTS: ${{ matrix.config_opts}} | |
USE_CMAKE: ${{ matrix.use_cmake }} | |
USE_SICM: ${{ matrix.use_sicm }} | |
continue-on-error: ${{ matrix.experimental }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 40 | |
- name: Cache install steps | |
id: ga-cache-install | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-install-steps | |
with: | |
# cache files are stored in `~/apps` on Linux/macOS | |
path: | | |
apps | |
key: ${{ runner.os }}-${{ matrix.mpi_impl}}-${{ matrix.armci_network}}-${{ matrix.cc }}-${{ matrix.f77 }}-${{ matrix.config_opts}}-ga-apps-v006 | |
- name: install_packages | |
run: | | |
case "${{ matrix.os }}" in | |
ubuntu*|jessie|stretch|buster) | |
sudo apt-get update -q -y | |
echo F77 is "$F77" | |
if [[ "$F77" =~ gfortran-[0-9][0-9] ]] || [[ "$CC" =~ gcc-[0-9][0-9] ]]; then | |
if [[ "$CC" =~ gcc-[0-9][0-9] ]]; then | |
version=$(echo "$CC" | cut -d - -f 2 ) | |
fi | |
if [[ "$F77" =~ gfortran-[0-9][0-9] ]]; then | |
version=$(echo "$F77" | cut -d - -f 2 ) | |
fi | |
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test && sudo apt-get -y install gcc-$version gfortran-$version g++-$version | |
fi | |
sudo apt-get install -q -y gfortran | |
;; | |
macos*) | |
brew update | |
brew install coreutils automake || true | |
;; | |
esac | |
if [[ "$F77" == "ifort" ]] || [[ "$CC" == "icc" ]] || [[ "$CC" == "icx" ]]; then ./travis/install-intel.sh; source ${{ matrix.oneapi }}/setvars.sh --force; fi | |
echo F77 is `which "$F77"` | |
echo F77 compiler version `"$F77" -v` | |
- name: before_install | |
if: steps.ga-cache-install.outputs.cache-hit != 'true' | |
run: | | |
pwd | |
ls -lart | |
mkdir -p $GITHUB_WORKSPACE/apps | |
AUTO_CC="$CC" | |
if [[ "$F77" == "ifort" ]] || [[ "$CC" == "icc" ]] || [[ "$CC" == "icx" ]]; then source ${{ matrix.oneapi }}/setvars.sh --force; AUTO_CC=cc; fi | |
CC="$AUTO_CC" sh ./travis/install-autotools.sh $GITHUB_WORKSPACE/apps | |
- name: install | |
run: | | |
export CI_ROOT=$GITHUB_WORKSPACE/apps | |
if [[ "$F77" == "ifort" ]] || [[ "$CC" == "icc" ]] || [[ "$CC" == "icx" ]]; then source ${{ matrix.oneapi }}/setvars.sh --force; fi | |
./travis/install-mpi.sh $CI_ROOT $MPI_IMPL | |
if [[ "$PORT" == "ofi" ]]; then ./travis/install-libfabric.sh $CI_ROOT; else true; fi | |
if [[ "$PORT" == "armci" ]]; then ./travis/install-armci-mpi.sh $CI_ROOT; else true; fi | |
if [[ "$USE_SICM" == "Y" ]]; then ./travis/install-sicm.sh $HOME/no_cache; else true; fi | |
- name: compile and test global arrays | |
if: ${{ success() }} | |
run: | | |
if [[ "$F77" == "ifort" ]] || [[ "$CC" == "icc" ]] || [[ "$CC" == "icx" ]] ; then source ${{ matrix.oneapi }}/setvars.sh --force; fi | |
./travis/build-run.sh $GITHUB_WORKSPACE/apps $PORT $MPI_IMPL $USE_CMAKE $F77 | |
- name: after_failure | |
if: ${{ failure() }} | |
run: | | |
pwd | |
ls | |
echo '***** cat config.log ****' | |
find . -name config.log -exec cat {} ";" || true | |
echo '***** cat global.fh *****' | |
find . -name "global.fh" -exec cat {} ";" || true | |
echo '***** global.fh* location *****' | |
find ../.. -name "global.fh*" || true | |
echo '***** cat global.fh.in *****' | |
find ../.. -name "global.fh.in" -exec cat {} ";" || true | |
cat ./test-suite.log || true | |
echo '***** CMakeOutput.log *****' | |
find . -name CMakeOutput.log -exec cat {} ";" || true | |
echo '***** CMakeError.log ******' | |
find . -name CMakeError.log -exec cat {} ";" || true | |
echo '***********' | |
cat /Users/runner/work/ga/ga/build/CMakeFiles/CMakeOutput.log || true | |
echo '***********' | |
cat /Users/runner/work/ga/ga/build/CMakeFiles/CMakeError.log || true |