name: Test HDF5 cache VOL # Controls when the action will run. on: push: branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest steps: - name: Checkout vol-tests uses: actions/checkout@v2 - name: Checkout HDF5 uses: actions/checkout@v2 with: repository: HDFGroup/hdf5 path: hdf5 - name: Checkout Argobots uses: actions/checkout@v3 with: repository: pmodels/argobots path: abt - name: Checkout vol-async uses: actions/checkout@v3 with: repository: hpc-io/vol-async path: vol-async - name: Checkout vol-cache uses: actions/checkout@v3 with: repository: hpc-io/vol-cache path: vol-cache - name: Install dependencies run: sudo apt-get install ninja-build automake autoconf libtool libtool-bin libopenmpi-dev - name: Install HDF5 run: | mkdir hdf5/build cd hdf5/build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_STATIC_LIBS=OFF -DHDF5_ENABLE_PARALLEL:BOOL=ON -DHDF5_ENABLE_THREADSAFE:BOOL=ON -DALLOW_UNSUPPORTED:BOOL=ON .. sudo make -j2 install cd .. git rev-parse HEAD > git.txt - name: Install Argobots run: | cd abt ./autogen.sh ./configure --prefix=/usr/local make -j2 sudo make -j2 install cd .. - name: Install vol-async env: CXX: mpic++ CC: mpicc run: | mkdir vol-async/build cd vol-async/build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local .. sudo make -j2 install cd .. - name: Install vol-cache env: CXX: mpic++ CC: mpicc run: | mkdir vol-cache/build cd vol-cache/build cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr/local .. sudo make -j2 install cd .. - name: Build VOL tests run: | pwd ls ls /usr/local/lib set mkdir -p build cd build cmake .. -DHDF5_DIR=/usr/local -DHDF5_VOL_TEST_ENABLE_PARALLEL:BOOL=ON -DHDF5_VOL_TEST_ENABLE_ASYNC:BOOL=ON -DHDF5_VOL_TEST_ENABLE_PART:BOOL=ON make -j2 - name: Test against VOL tests (setup environment) run: | echo "HDF5_PLUGIN_PATH=/usr/local/lib" >> "$GITHUB_ENV" echo "HDF5_VOL_CONNECTOR=cache_ext config=$GITHUB_WORKSPACE/config1.cfg;under_vol=0;under_info={};" >> "$GITHUB_ENV" - name: Test against VOL tests env: LD_LIBRARY_PATH: /usr/local/lib HDF5_PLUGIN_PATH: /usr/local/lib run: | mkdir -p $GITHUB_WORKSPACE/scratch touch $GITHUB_WORKSPACE/config1.cfg echo "HDF5_CACHE_STORAGE_SCOPE: LOCAL" >> $GITHUB_WORKSPACE/config1.cfg echo "HDF5_CACHE_STORAGE_PATH: $GITHUB_WORKSPACE/scratch" >> $GITHUB_WORKSPACE/config1.cfg echo "HDF5_CACHE_STORAGE_SIZE: 4294967296" >> $GITHUB_WORKSPACE/config1.cfg echo "HDF5_CACHE_STORAGE_TYPE: SSD" >> $GITHUB_WORKSPACE/config1.cfg echo "HDF5_CACHE_REPLACEMENT_POLICY: LRU" >> $GITHUB_WORKSPACE/config1.cfg cd build ctest -V - name: Test against VOL tests (stacked on top of Async VOL) (setup environment) run: | echo "HDF5_PLUGIN_PATH=/usr/local/lib" >> "$GITHUB_ENV" echo "HDF5_VOL_CONNECTOR=cache_ext config=$GITHUB_WORKSPACE/config2.cfg;under_vol=512;under_info={under_vol=0;under_info={}};" >> $GITHUB_ENV - name: Test against VOL tests (stacked on top of Async VOL) env: LD_LIBRARY_PATH: /usr/local/lib HDF5_PLUGIN_PATH: /usr/local/lib run: | mkdir -p $GITHUB_WORKSPACE/scratch touch $GITHUB_WORKSPACE/config2.cfg echo "HDF5_CACHE_STORAGE_SCOPE: LOCAL" >> $GITHUB_WORKSPACE/config2.cfg echo "HDF5_CACHE_STORAGE_PATH: $GITHUB_WORKSPACE/scratch" >> $GITHUB_WORKSPACE/config2.cfg echo "HDF5_CACHE_STORAGE_SIZE: 4294967296" >> $GITHUB_WORKSPACE/config2.cfg echo "HDF5_CACHE_STORAGE_TYPE: SSD" >> $GITHUB_WORKSPACE/config2.cfg echo "HDF5_CACHE_REPLACEMENT_POLICY: LRU" >> $GITHUB_WORKSPACE/config2.cfg cd build ctest -V - name: Upload uses: actions/upload-artifact@v2 with: name: git.txt path: ${{ runner.workspace }}/vol-tests/hdf5/git.txt