Skip to content

update CI

update CI #31

name: NERSC / Perlmutter (no cache)
on:
push:
workflow_dispatch:
concurrency:
group: "${{ github.ref }}"
cancel-in-progress: true
env:
GOOGLE_CREDENTIALS: "${{ secrets.GOOGLE_CREDENTIALS }}"
GOOGLE_SPREADSHEET_ID: "${{ secrets.GOOGLE_SPREADSHEET_ID }}"
PDC_BUILD_PATH: "${{ github.workspace }}/${{ github.run_id }}"
PDC_TMPDIR: "${{ github.workspace }}/${{ github.run_id }}/pdc-tmp-paralell-pdc"
PDC_DATA_LOC: "${{ github.workspace }}/${{ github.run_id }}/pdc-data-paralell-pdc"
SCHEDULER_PARAMETERS: "-A ${{ secrets.NERSC_PERLMUTTER_PROJECT }} --qos=debug --constraint=cpu --tasks-per-node=64 -N 1 -t 00:30:00"
MERCURY_DIR: "/global/cfs/cdirs/${{ secrets.NERSC_PERLMUTTER_PROJECT }}/pdc-perlmutter/mercury/install"
jobs:
build:
runs-on:
- self-hosted
- perlmutter
environment: NERSC
timeout-minutes: 2880
steps:
- uses: actions/checkout@v4.1.0
with:
fetch-depth: 20
lfs: true
- run: |
echo "MERCURY_DIR = $MERCURY_DIR"
module load libfabric
module list
mkdir -p ${PDC_BUILD_PATH}/build ${PDC_BUILD_PATH}/install
cd ${PDC_BUILD_PATH}/build
cmake ../.. -DBUILD_MPI_TESTING=ON -DBUILD_SHARED_LIBS=ON -DPDC_SERVER_CACHE=OFF -DBUILD_TESTING=ON -DCMAKE_INSTALL_PREFIX=${PDC_BUILD_PATH}/install -DPDC_ENABLE_MPI=ON -DMERCURY_DIR=$MERCURY_DIR -DCMAKE_C_COMPILER=cc -DMPI_RUN_CMD="srun -A ${{ secrets.NERSC_PERLMUTTER_PROJECT }} --qos=debug --constraint=cpu --tasks-per-node=64"
make -j
- uses: actions/upload-artifact@v4.1.0
if: success()
with:
name: "${{ github.job }}"
path: |
${{ github.workspace }}/${{ github.run_id }}/build
${{ github.workspace }}/${{ github.run_id }}/install
parallel-pdc:
needs:
- build
runs-on:
- self-hosted
- perlmutter
environment: NERSC
timeout-minutes: 2880
steps:
- uses: actions/checkout@v4.1.0
with:
fetch-depth: 20
lfs: true
- uses: actions/download-artifact@v4.1.0
with:
path: |
${{ github.workspace }}/${{ github.run_id }}
- run: |
export LD_LIBRARY_PATH="$MERCURY_DIR/lib:$LD_LIBRARY_PATH"
cd ${PDC_BUILD_PATH}/install
ctest -L parallel_pdc
rm -rf ${PDC_TMPDIR} ${PDC_DATA_LOC}
parallel-obj:
needs:
- build
- parallel-pdc
runs-on:
- self-hosted
- perlmutter
environment: NERSC
timeout-minutes: 2880
steps:
- uses: actions/checkout@v4.1.0
with:
fetch-depth: 20
lfs: true
- uses: actions/download-artifact@v4.1.0
with:
path: |
${{ github.workspace }}/${{ github.run_id }}
- run: |
export LD_LIBRARY_PATH="$MERCURY_DIR/lib:$LD_LIBRARY_PATH"
cd ${PDC_BUILD_PATH}/build
ctest -L parallel_obj
rm -rf ${PDC_TMPDIR} ${PDC_DATA_LOC}