GlobalArrays_CI #1099
This file contains hidden or 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-22.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-22.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: macos-latest | |
| experimental: true | |
| use_cmake: "N" | |
| mpi_impl: mpich | |
| armci_network: mpi-pr | |
| f77: gfortran-14 | |
| cc: gcc-14 | |
| - os: ubuntu-22.04 | |
| experimental: true | |
| use_cmake: "Y" | |
| mpi_impl: openmpi | |
| armci_network: mpi-pr | |
| f77: gfortran | |
| cc: gcc | |
| - os: ubuntu-22.04 | |
| experimental: true | |
| use_cmake: "Y" | |
| mpi_impl: openmpi | |
| armci_network: mpi-ts | |
| f77: gfortran | |
| cc: gcc | |
| - os: ubuntu-22.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 |