Fix dataset creation failure on Ubuntu 24 #400
Workflow file for this run
This file contains 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: Test REST VOL with socket | |
on: | |
workflow_dispatch: | |
push: | |
pull_request: | |
branches: [ master ] | |
paths-ignore: | |
- '.github/CODEOWNERS' | |
- 'docs/**' | |
- 'COPYING' | |
- '**.md' | |
env: | |
ADMIN_PASSWORD: admin | |
ADMIN_USERNAME: admin | |
USER_NAME: test_user1 | |
USER_PASSWORD: test | |
USER2_NAME: test_user2 | |
USER2_PASSWORD: test | |
HSDS_USERNAME: test_user1 | |
HSDS_PASSWORD: test | |
HSDS_PATH: /home/test_user1/ | |
HDF5_API_TEST_PATH_PREFIX: /home/test_user1/ | |
HSDS_ENDPOINT: http+unix://%2Ftmp%2Fhs%2Fsn_1.sock | |
HDF5_VOL_CONNECTOR: REST | |
ROOT_DIR: ${{github.workspace}}/hsdsdata | |
BUCKET_NAME: hsdstest | |
jobs: | |
build_and_test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, ubuntu-latest] | |
build_system: ["autotools", "cmake"] | |
python-version: ["3.10", "3.11"] | |
hdf5-branch: ["hdf5_1_14", "develop"] | |
compiler: ["gcc-11", "gcc-12", "gcc-13"] | |
exclude: | |
# Ubuntu 22.04 runner does not have gcc-13 | |
- os: ubuntu-22.04 | |
compiler: "gcc-13" | |
# Ubuntu 24.04 runner does not have gcc-11 | |
- os: ubuntu-latest | |
compiler: "gcc-11" | |
# hdf5 2.0.0+ does not support autotools | |
- hdf5-branch: "develop" | |
build_system: "autotools" | |
runs-on: ${{matrix.os}} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
repository: HDFGroup/hdf5 | |
ref: ${{matrix.hdf5-branch}} | |
path: ${{github.workspace}}/hdf5 | |
- name: Get REST VOL dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libcurl4-openssl-dev | |
sudo apt-get install libyajl-dev | |
- name: Get Autotools Dependencies | |
if: matrix.build_system == 'autotools' | |
run: | | |
sudo apt update | |
sudo apt install automake autoconf libtool libtool-bin | |
- name: Get REST VOL | |
uses: actions/checkout@v4 | |
with: | |
path: ${{github.workspace}}/vol-rest | |
- name: CMake Configure + Build HDF5 | |
if: matrix.build_system == 'cmake' | |
run: | | |
mkdir ${{github.workspace}}/hdf5/build | |
cd ./build | |
cmake \ | |
-DHDF5_BUILD_HL_LIB=ON \ | |
-DBUILD_SHARED_LIBS=ON -DHDF5_ENABLE_SZIP_SUPPORT=OFF \ | |
-DHDF5_TEST_API=ON \ | |
-DHDF5_ENABLE_Z_LIB_SUPPORT=OFF \ | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DHDF5_ENABLE_THREADSAFE=OFF \ | |
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/hdf5install \ | |
-DCMAKE_C_COMPILER=${{matrix.compiler}} \ | |
.. | |
make | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/hdf5 | |
- name: Autotools Configure + Build HDF5 | |
if: matrix.build_system == 'autotools' | |
run: | | |
./autogen.sh | |
./configure --prefix=${{github.workspace}}/hdf5install \ | |
--enable-hl --disable-threadsafe \ | |
--enable-build-mode=production --enable-shared \ | |
CC=${{matrix.compiler}} | |
make | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/hdf5 | |
- name: CMake Configure REST VOL | |
if: matrix.build_system == 'cmake' | |
run: | | |
mkdir ./build | |
cd ./build | |
CFLAGS="-D_POSIX_C_SOURCE=200809L" cmake -G "Unix Makefiles" -DHDF5_ROOT=${{github.workspace}}/hdf5install \ | |
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/vol-rest/install \ | |
-DCMAKE_C_COMPILER=${{matrix.compiler}} \ | |
.. | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest | |
- name: Autotools Configure REST VOL | |
if: matrix.build_system == 'autotools' | |
run: | | |
./autogen.sh | |
mkdir ${{github.workspace}}/vol-rest/install | |
CFLAGS="-D_POSIX_C_SOURCE=200809L" ./configure \ | |
--prefix=${{github.workspace}}/vol-rest/install \ | |
--with-hdf5=${{github.workspace}}/hdf5install \ | |
CC=${{matrix.compiler}} | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest | |
- name: Build + Install REST VOL (Autotools) | |
if: matrix.build_system == 'autotools' | |
run: | | |
make -j | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest/ | |
- name: Build + Install REST VOL (CMake) | |
if: matrix.build_system == 'cmake' | |
run: | | |
make -j | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest/build/ | |
- uses: actions/checkout@v4 | |
with: | |
repository: HDFGroup/hsds | |
path: ${{github.workspace}}/hsds | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install HSDS dependencies | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install pytest | |
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | |
- name: Install HSDS package | |
shell: bash | |
run: | | |
cd ${{github.workspace}}/hsds | |
pip install -e . | |
- name: Run HSDS unit tests | |
shell: bash | |
run: | | |
cd ${{github.workspace}}/hsds | |
pytest | |
- name: Install valgrind | |
run: | | |
sudo apt update | |
sudo apt install valgrind | |
working-directory: ${{ github.workspace }} | |
# Requests 2.32.0 breaks requests-unixsocket, used by HSDS for socket connections | |
- name: Fix requests version | |
run: | | |
pip install requests==2.31.0 | |
- name: Start HSDS | |
run: | | |
cd ${{github.workspace}}/hsds | |
mkdir ${{github.workspace}}/hsdsdata && | |
mkdir ${{github.workspace}}/hsdsdata/hsdstest && | |
cp admin/config/groups.default admin/config/groups.txt && | |
cp admin/config/passwd.default admin/config/passwd.txt && | |
cp admin/config/groups.default admin/config/groups.txt && | |
cp admin/config/passwd.default admin/config/passwd.txt | |
ROOT_DIR=${{github.workspace}}/hsdadata ./runall.sh --no-docker 1 & | |
sleep 10 | |
working-directory: ${{github.workspace}}/hsds | |
- name: Test HSDS | |
run: | | |
python tests/integ/setup_test.py | |
working-directory: ${{github.workspace}}/hsds | |
- name: Test REST VOL (Autotools) | |
if: matrix.build_system == 'autotools' | |
working-directory: ${{github.workspace}}/vol-rest/ | |
run: | | |
HDF5_PLUGIN_PATH=${{github.workspace}}/vol-rest/install/lib HDF5_VOL_CONNECTOR=REST ./test/test_rest_vol | |
- name: Test REST VOL (CMake) | |
if: matrix.build_system == 'cmmake' | |
working-directory: ${{github.workspace}}/vol-rest/build/ | |
run: | | |
valgrind --leak-check=full -s ctest -R "test_rest_vol" -VV | |
- name: Show HSDS Logs on Fail | |
if: ${{failure()}} | |
working-directory: ${{github.workspace}}/hsds | |
run: | | |
cat hs.log | |
# TODO: Attribute, dataset, link, and testhdf5 tests currently fail | |
# - name: Test REST VOL with API | |
# run: | | |
# valgrind --leak-check=full -s ctest -R "vol-rest" -VV | |
# working-directory: ${{github.workspace}}/hdf5/build/ |