From b0ad3f31e6aea0c2ba7f5eec099c4c7f91770659 Mon Sep 17 00:00:00 2001 From: Angelyr Date: Sat, 4 Jan 2025 14:33:53 -0500 Subject: [PATCH] re wrote github action tests --- .github/actions/install-repo/action.yml | 47 ++++ .github/workflows/cmake.yml | 292 ++++++++---------------- 2 files changed, 137 insertions(+), 202 deletions(-) create mode 100644 .github/actions/install-repo/action.yml diff --git a/.github/actions/install-repo/action.yml b/.github/actions/install-repo/action.yml new file mode 100644 index 0000000..b799586 --- /dev/null +++ b/.github/actions/install-repo/action.yml @@ -0,0 +1,47 @@ +name: Install-Repo + +inputs: + repo-name: + required: true + repo-path: + required: true + repo-ref: + required: true + options: + required: true + cache: + required: true + submodules: + default: '' + +runs: + using: "composite" + steps: + + - name: Check Cache + if: ${{ inputs.cache == 'true'}} + uses: actions/cache@v3 + id: check-cache + with: + key: build-${{ inputs.repo-name }} + path: ${{ runner.temp }}/build-${{ inputs.repo-name }} + + - name: Checkout Repo + uses: actions/checkout@v3 + with: + repository: ${{ inputs.repo-path }} + submodules: ${{ inputs.submodules }} + ref: ${{ inputs.repo-ref }} + path: ${{ inputs.repo-name }} + + - name: Configure CMake + if: ${{ !steps.check-cache.outputs.cache-hit }} + shell: bash + run: cmake -S $GITHUB_WORKSPACE/${{ inputs.repo-name }} -B ${{ runner.temp }}/build-${{ inputs.repo-name }} + -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-${{ inputs.repo-name }}/install + ${{ inputs.options }} + + - name: Build Cmake + if: ${{ !steps.check-cache.outputs.cache-hit }} + shell: bash + run: cmake --build ${{ runner.temp }}/build-${{ inputs.repo-name }} -j8 --target install \ No newline at end of file diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 6c9ef06..ae86cd5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -32,215 +32,103 @@ jobs: - name: Install NetCDF-Fortran run: sudo apt-get install libnetcdff-dev - # Build Kokkos - - name: Cache Kokkos Build - uses: actions/cache@v3 - id: build-kokkos + - name: build kokkos + uses: ./.github/actions/install-repo with: - key: build-kokkos - path: ${{ runner.temp }}/build-kokkos - - - name: Kokkos Checkout repo - if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }} - uses: actions/checkout@v3 + repo-name: 'kokkos' + repo-path: 'kokkos/kokkos' + repo-ref: '4.2.00' + cache: true + options: '-DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DKokkos_ENABLE_SERIAL=ON + -DKokkos_ENABLE_OPENMP=off + -DKokkos_ENABLE_CUDA=off + -DKokkos_ENABLE_CUDA_LAMBDA=off + -DKokkos_ENABLE_DEBUG=on' + + + - name: build Engpar + uses: ./.github/actions/install-repo with: - repository: kokkos/kokkos - ref: 4.1.00 - path: kokkos - - - name: Kokkos Create Directory - if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }} - run: cmake -E make_directory ${{ runner.temp }}/build-kokkos - - - name: Kokkos Configure CMake - if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }} - run: cmake -S $GITHUB_WORKSPACE/kokkos -B ${{ runner.temp }}/build-kokkos - -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-kokkos/install - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DKokkos_ENABLE_SERIAL=ON - -DKokkos_ENABLE_OPENMP=off - -DKokkos_ENABLE_CUDA=off - -DKokkos_ENABLE_CUDA_LAMBDA=off - -DKokkos_ENABLE_DEBUG=on - - - name: Kokkos Build - if: ${{ steps.build-kokkos.outputs.cache-hit != 'true' }} - run: cmake --build ${{ runner.temp }}/build-kokkos -j8 --target install - - # Build EnGPar - - - name: Cache Engpar Build - uses: actions/cache@v3 - id: build-engpar + repo-name: 'Engpar' + repo-path: 'SCOREC/EnGPar' + repo-ref: '' + cache: true + options: '-DCMAKE_C_COMPILER=mpicc + -DCMAKE_CXX_COMPILER=mpicxx + -DCMAKE_CXX_FLAGS="-std=c++11" + -DENABLE_PARMETIS=OFF + -DENABLE_PUMI=OFF + -DIS_TESTING=OFF' + + + - name: build omega_h + uses: ./.github/actions/install-repo with: - key: build-engpar - path: ${{ runner.temp }}/build-engpar - - - name: EnGPar Checkout repo - if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }} - uses: actions/checkout@v3 + repo-name: 'omega_h' + repo-path: 'SCOREC/omega_h' + repo-ref: 'scorec-v10.8.0' + cache: true + options: '-DCMAKE_BUILD_TYPE=Release + -DBUILD_SHARED_LIBS=OFF + -DOmega_h_USE_Kokkos=ON + -DOmega_h_USE_CUDA=off + -DOmega_h_USE_MPI=on + -DMPIEXEC_EXECUTABLE=srun + -DBUILD_TESTING=off + -DCMAKE_C_COMPILER=mpicc + -DCMAKE_CXX_COMPILER=mpicxx + -DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install/lib/cmake' + + + - name: build cabana + uses: ./.github/actions/install-repo with: - repository: SCOREC/EnGPar - path: engpar - - - name: EnGPar Create Directory - if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }} - run: cmake -E make_directory ${{ runner.temp }}/build-engpar - - - name: EnGPar Configure CMake - if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }} - run: cmake -S $GITHUB_WORKSPACE/engpar -B ${{ runner.temp }}/build-engpar - -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-engpar/install - -DCMAKE_C_COMPILER="mpicc" - -DCMAKE_CXX_COMPILER="mpicxx" - -DCMAKE_CXX_FLAGS="-std=c++11" - -DENABLE_PARMETIS=OFF - -DENABLE_PUMI=OFF - -DIS_TESTING=OFF - - - name: EnGPar Build - if: ${{ steps.build-engpar.outputs.cache-hit != 'true' }} - run: cmake --build ${{ runner.temp }}/build-engpar -j8 --target install - - # Build Omega_h - - - name: Cache Omega_h Build - uses: actions/cache@v3 - id: build-omega_h + repo-name: 'cabana' + repo-path: 'ECP-copa/cabana' + repo-ref: '0.6.1' + cache: true + options: '-DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DCMAKE_BUILD_TYPE=Release + -DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON + -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake' + + + - name: build pumi-pic + uses: ./.github/actions/install-repo with: - key: build-omega_h - path: ${{ runner.temp }}/build-omega_h - - - name: Omega_h Checkout repo - if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }} - uses: actions/checkout@v3 + repo-name: 'pumi-pic' + repo-path: 'SCOREC/pumi-pic' + repo-ref: '2.0.3' + submodules: 'recursive' + cache: true + options: '-DCMAKE_CXX_COMPILER=mpicxx + -DCMAKE_BUILD_TYPE=Release + -DIS_TESTING=OFF + -DPS_IS_TESTING=OFF + -DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data + -DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install + -DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install + -DEnGPar_PREFIX=${{ runner.temp }}/build-engpar/install + -DCabana_PREFIX=${{ runner.temp }}/build-cabana/install + -DENABLE_CABANA=on + -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake' + + + - name: build polyMPO + uses: ./.github/actions/install-repo with: - repository: SCOREC/omega_h - ref: scorec-v10.8.0 - path: omega_h - - - name: Omega_h Create Directory - if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }} - run: cmake -E make_directory ${{ runner.temp }}/build-omega_h - - - name: Omega_h Configure CMake - if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }} - run: cmake -S $GITHUB_WORKSPACE/omega_h -B ${{ runner.temp }}/build-omega_h - -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-omega_h/install - -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake - -DBUILD_SHARED_LIBS=OFF - -DOmega_h_USE_Kokkos=ON - -DOmega_h_USE_CUDA=off - -DOmega_h_USE_MPI=on - -DCMAKE_BUILD_TYPE=Release - -DBUILD_TESTING=on - -DCMAKE_CXX_COMPILER="mpicxx" - -DCMAKE_C_COMPILER="mpicc" - - - name: Omega_h Build - if: ${{ steps.build-omega_h.outputs.cache-hit != 'true' }} - run: cmake --build ${{ runner.temp }}/build-omega_h -j8 --target install - - # Build Cabana - - - name: Cache Cabana Build - uses: actions/cache@v3 - id: build-cabana - with: - key: build-cabana - path: ${{ runner.temp }}/build-cabana - - - name: Cabana Checkout repo - if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }} - uses: actions/checkout@v3 - with: - repository: ECP-copa/cabana - ref: 0.6.1 - path: cabana - - - name: Cabana Create Directory - if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }} - run: cmake -E make_directory ${{ runner.temp }}/build-cabana - - - name: Cabana Configure CMake - if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }} - run: cmake -S $GITHUB_WORKSPACE/cabana -B ${{ runner.temp }}/build-cabana - -DCMAKE_BUILD_TYPE="Release" - -DCMAKE_DISABLE_FIND_PACKAGE_HDF5=ON - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake - -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-cabana/install - - - name: Cabana Build - if: ${{ steps.build-cabana.outputs.cache-hit != 'true' }} - run: cmake --build ${{ runner.temp }}/build-cabana -j8 --target install - - # Build PUMI-PIC - - - name: Cache PUMI-PIC Build - uses: actions/cache@v3 - id: build-pumi-pic - with: - key: build-pumi-pic - path: ${{ runner.temp }}/build-pumi-pic - - - name: PUMI-PIC Checkout repo - if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }} - uses: actions/checkout@v3 - with: - submodules: recursive - repository: SCOREC/pumi-pic - ref: 2.0.3 - path: pumi-pic - - - name: PUMI-PIC Create Directory - if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }} - run: cmake -E make_directory ${{ runner.temp }}/build-pumi-pic - - - name: PUMI-PIC Configure CMake - if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }} - run: cmake -S $GITHUB_WORKSPACE/pumi-pic -B ${{ runner.temp }}/build-pumi-pic - -DCMAKE_CXX_COMPILER=mpicxx - -DIS_TESTING=ON - -DPS_IS_TESTING=ON - -DCMAKE_BUILD_TYPE="Release" - -DTEST_DATA_DIR=$GITHUB_WORKSPACE/pumi-pic/pumipic-data - -DOmega_h_PREFIX=${{ runner.temp }}/build-omega_h/install - -DKokkos_PREFIX=${{ runner.temp }}/build-kokkos/install - -DEnGPar_PREFIX=${{ runner.temp }}/build-engpar/install - -DCabana_PREFIX=${{ runner.temp }}/build-cabana/install - -DENABLE_CABANA=on - -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-pumi-pic/install - -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-kokkos/install/lib/cmake - - - name: PUMI-PIC Build - if: ${{ steps.build-pumi-pic.outputs.cache-hit != 'true' }} - run: cmake --build ${{ runner.temp }}/build-pumi-pic -j8 --target install - - # Build PolyMPO - - - name: PolyMPO Checkout repo - uses: actions/checkout@v3 - with: - submodules: recursive - repository: SCOREC/polyMPO - path: polyMPO - - - name: PolyMPO Create Directory - run: cmake -E make_directory ${{ runner.temp }}/build-polyMPO - - - name: PolyMPO Configure CMake - run: cmake -S $GITHUB_WORKSPACE/polyMPO -B ${{ runner.temp }}/build-polyMPO - -DCMAKE_BUILD_TYPE="Debug" - -DKokkos_DIR=${{ runner.temp }}/build-kokkos/install/lib64/cmake/Kokkos - -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-pumi-pic/install - -DIS_TESTING=on - -DCMAKE_CXX_COMPILER=mpicxx - -DCMAKE_INSTALL_PREFIX=${{ runner.temp }}/build-polyMPO/install - - - name: PolyMPO Build - run: cmake --build ${{ runner.temp }}/build-polyMPO -j8 --target install + repo-name: 'polyMPO' + repo-path: 'SCOREC/polyMPO' + repo-ref: '' + cache: false + submodules: 'recursive' + options: '-DCMAKE_CXX_COMPILER=mpicxx + -DCMAKE_BUILD_TYPE=Debug + -DKokkos_DIR=${{ runner.temp }}/build-kokkos/install/lib64/cmake/Kokkos + -DCMAKE_PREFIX_PATH=${{ runner.temp }}/build-pumi-pic/install + -DIS_TESTING=on' - name: PolyMPO Test run: ctest --test-dir ${{ runner.temp }}/build-polyMPO