Require libcurl <8.0.0 #381
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_with_autotools: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.10"] | |
hdf5-branch: ["hdf5_1_14", "develop"] | |
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=7.81 | |
sudo apt-get install libyajl-dev | |
- name: Get Autotools Dependencies | |
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: Autotools Configure + Build HDF5 | |
run: | | |
./autogen.sh | |
./configure --prefix=${{github.workspace}}/hdf5install \ | |
--enable-hl --disable-threadsafe \ | |
--enable-build-mode=production --enable-shared | |
make | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/hdf5 | |
- name: Autotools Configure REST VOL | |
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 | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest | |
- name: Build + Install REST VOL | |
run: | | |
make | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest/ | |
- 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 | |
if: ${{ matrix.endpoint != 'http://127.0.0.1:5101'}} | |
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 | |
if: ${{matrix.endpoint != 'http://127.0.0.1:5101'}} | |
run: | | |
python tests/integ/setup_test.py | |
working-directory: ${{github.workspace}}/hsds | |
- name: Test REST VOL | |
working-directory: ${{github.workspace}}/vol-rest/ | |
run: | | |
HDF5_PLUGIN_PATH=${{github.workspace}}/vol-rest/install/lib HDF5_VOL_CONNECTOR=REST ./test/test_rest_vol | |
build_and_test_with_cmake: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.10"] | |
hdf5-branch: ["hdf5_1_14", "develop"] | |
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=7.81 | |
sudo apt-get install libyajl-dev | |
- name: Get REST VOL | |
uses: actions/checkout@v4 | |
with: | |
path: ${{github.workspace}}/vol-rest | |
- name: CMake Configure + Build HDF5 | |
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 \ | |
.. | |
make | |
make install | |
shell: bash | |
working-directory: ${{github.workspace}}/hdf5 | |
- name: CMake Configure REST VOL | |
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 \ | |
.. | |
shell: bash | |
working-directory: ${{github.workspace}}/vol-rest | |
- name: Build + Install REST VOL | |
run: | | |
make | |
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 | |
if: ${{ matrix.endpoint != 'http://127.0.0.1:5101'}} | |
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 | |
if: ${{matrix.endpoint != 'http://127.0.0.1:5101'}} | |
run: | | |
python tests/integ/setup_test.py | |
working-directory: ${{github.workspace}}/hsds | |
- name: Set HDF5 Plugin path | |
run: | | |
echo "HDF5_PLUGIN_PATH=${{github.workspace}}/vol-rest/build/bin/" >> $GITHUB_ENV | |
echo "HDF5_VOL_CONNECTOR=REST" >> $GITHUB_ENV | |
- name: Test REST VOL | |
working-directory: ${{github.workspace}}/vol-rest/build/ | |
run: | | |
valgrind --leak-check=full -s ctest -R "test_rest_vol" -VV | |
# 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/ |