diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 2fd8ea8f1..000000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,140 +0,0 @@ -name: 'Test Suite' - -on: - push: - paths: - - '**.f90' - - '**.fpp' - - '**.py' - - '**.yml' - - 'mfc.sh' - - 'golden.txt' - - 'CMakeLists.txt' - - 'requirements.txt' - - pull_request: - - workflow_dispatch: - -jobs: - github: - name: Github - strategy: - matrix: - os: ['ubuntu', 'macos'] - mpi: ['mpi', 'no-mpi'] - debug: ['debug', 'no-debug'] - intel: [true, false] - exclude: - - intel: true - os: macos - fail-fast: false - continue-on-error: true - runs-on: ${{ matrix.os }}-latest - steps: - - name: Clone - uses: actions/checkout@v3 - - - name: Setup MacOS - if: matrix.os == 'macos' - run: | - echo "CC=gcc-13" >> $GITHUB_ENV - echo "CXX=g++-13" >> $GITHUB_ENV - echo "FC=gfortran-13" >> $GITHUB_ENV - brew install wget make python make cmake coreutils gcc@13 - - - name: (MacOS) Build OpenMPI - if: matrix.os == 'macos' && matrix.mpi == 'mpi' - run: | - echo "OMPI_FC=gfortran-13" >> $GITHUB_ENV - echo "OMPI_CXX=g++-13" >> $GITHUB_ENV - echo "OMPI_MPICC=gcc-13" >> $GITHUB_ENV - HOMEBREW_MAKE_JOBS=$(nproc) brew install --cc=gcc-13 --verbose --build-from-source open-mpi - - - name: Setup Ubuntu - if: matrix.os == 'ubuntu' && matrix.intel == false - run: | - sudo apt update -y - sudo apt install -y tar wget make cmake gcc g++ python3 python3-dev "openmpi-*" libopenmpi-dev - - - name: Setup Ubuntu (Intel) - if: matrix.os == 'ubuntu' && matrix.intel == true - run: | - sudo apt install tar wget make cmake python3 python3-dev - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB - sudo echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list - sudo apt-get update - sudo apt-get install -y intel-oneapi-common-vars intel-oneapi-compiler-fortran-2022.1.0 intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2022.1.0 intel-oneapi-mkl-2021.4.0 intel-oneapi-mpi-2021.7.1 intel-oneapi-mpi-devel-2021.7.1 - source /opt/intel/oneapi/setvars.sh - echo "CXX=$(which icpc)" >> $GITHUB_ENV - echo "CC=$(which icc)" >> $GITHUB_ENV - echo "FC=$(which ifort)" >> $GITHUB_ENV - echo "OMPI_FC=$(which ifort)" >> $GITHUB_ENV - echo "OMPI_CXX=$(which icpc)" >> $GITHUB_ENV - echo "OMPI_MPICC=$(which icc)" >> $GITHUB_ENV - echo "MPI_HOME=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV - echo "I_MPI_ROOT=/opt/intel/oneapi/mpi/2021.7.1/" >> $GITHUB_ENV - - - name: Build - run: | - if [ '${{ matrix.intel }}' == 'true' ]; then source /opt/intel/oneapi/setvars.sh; fi - /bin/bash mfc.sh build -j $(nproc) --${{ matrix.debug }} --${{ matrix.mpi }} - - - name: Test - run: | - if [ '${{ matrix.intel }}' == 'true' ]; then source /opt/intel/oneapi/setvars.sh; fi - /bin/bash mfc.sh test -j $(nproc) $OPT1 $OPT2 - env: - OPT1: ${{ matrix.mpi == 'mpi' && '--test-all' || '' }} - OPT2: ${{ matrix.debug == 'debug' && '-% 20' || '' }} - - - name: Ensure empty diff - run: git diff --exit-code tests/ - - docker: - name: Github | Docker - runs-on: ubuntu-latest - steps: - - name: Clone - uses: actions/checkout@v3 - - - name: Test - run: sudo ./mfc.sh docker ./mfc.sh test -j $(nproc) -a - - - name: Ensure empty diff - run: git diff --exit-code tests/ - - self: - name: Georgia Tech | Phoenix (NVHPC) - if: github.repository == 'MFlowCode/MFC' - continue-on-error: true - strategy: - matrix: - device: ['cpu', 'gpu'] - runs-on: - group: phoenix - labels: self-hosted - steps: - - name: Clone - uses: actions/checkout@v3 - - - name: Build - run: | - . ./mfc.sh load -c p -m gpu - ./mfc.sh build -j 2 $(if [ '${{ matrix.device }}' == 'gpu' ]; then echo '--gpu'; fi) - - - name: Test - run: | - . ./mfc.sh load -c p -m gpu - mv misc/run-phoenix-release-${{ matrix.device }}.sh ./ - sbatch run-phoenix-release-${{ matrix.device }}.sh - - - name: Ensure empty diff - run: exit $(git status --porcelain tests/ | wc -l) - - - name: Print - if: always() - run: | - cat test.out