Skip to content

Add an option to generate yaml file with results for performance comparison in example queries #395

Add an option to generate yaml file with results for performance comparison in example queries

Add an option to generate yaml file with results for performance comparison in example queries #395

name: End-to-end test on Linux
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
merge_group:
jobs:
end-to-end-test-linux:
runs-on: ${{matrix.os}}
strategy:
fail-fast: true
matrix:
os: [ubuntu-22.04]
steps:
- name: Checkout the repository for the qlever script
uses: actions/checkout@v3
with:
path: qlever-control
- name: Install qlever script locally + dependencies needed for testing
working-directory: ${{github.workspace}}/qlever-control
run: |
python3 -m pip install --upgrade pip setuptools wheel
python3 --version
pip3 --version
pip3 show setuptools wheel
pip3 install -e .
sudo apt update && sudo apt install unzip expect
- name: Cache for qlever code and binaries
uses: actions/cache@v3
env:
cache-name: qlever-code
with:
path: ${{github.workspace}}/qlever-code
key: ${{matrix.os}}-${{env.cache-name}}
- name: Build qlever binaries from source + download docker image
run: |
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:mhier/libboost-latest
sudo apt install -y build-essential cmake libicu-dev tzdata pkg-config uuid-runtime uuid-dev git libjemalloc-dev ninja-build libzstd-dev libssl-dev libboost1.81-dev libboost-program-options1.81-dev libboost-iostreams1.81-dev libboost-url1.81-dev
if [ ! -d qlever-code ]; then
git clone https://github.com/ad-freiburg/qlever.git qlever-code; fi
cd qlever-code
git pull
mkdir -p build && cd $_
cmake -DCMAKE_BUILD_TYPE=Release -DLOGLEVEL=INFO -DUSE_PARALLEL=true -GNinja ..
ninja ServerMain IndexBuilderMain
docker pull adfreiburg/qlever
- name: Check that qlever binaries, docker image, and qlever script are found and work
run: |
mkdir qlever-indices
export PATH="$PATH:$(pwd)/qlever-control:$(pwd)/qlever-code/build"
docker run --entrypoint bash adfreiburg/qlever -c "ServerMain --help" | head -3
docker run --entrypoint bash adfreiburg/qlever -c "IndexBuilderMain --help" | head -3
ServerMain --help | head -3; echo "..."
IndexBuilderMain --help | head -3; echo "..."
qlever --help
- name: Test qlever script for olympics dataset, with docker
timeout-minutes: 1
run: |
export PATH="$PATH:$(pwd)/qlever-code/build"
export QLEVER_ARGCOMPLETE_ENABLED=1
mkdir -p ${{github.workspace}}/qlever-indices/olympics.1 && cd $_
qlever setup-config olympics
qlever get-data
unbuffer qlever index
unbuffer qlever start
qlever status
qlever stop
ls -lh
- name: Test qlever script for olympics dataset, without docker
timeout-minutes: 1
run: |
export PATH="$PATH:$(pwd)/qlever-code/build"
export QLEVER_ARGCOMPLETE_ENABLED=1
mkdir -p ${{github.workspace}}/qlever-indices/olympics.2 && cd $_
qlever setup-config olympics
qlever get-data
qlever index --system native
qlever start --system native
qlever status
qlever stop
ls -lh
- name: Test qlever script for olympics dataset, with and without docker
timeout-minutes: 1
run: |
export PATH="$PATH:$(pwd)/qlever-code/build"
export QLEVER_ARGCOMPLETE_ENABLED=1
mkdir -p ${{github.workspace}}/qlever-indices/olympics.3 && cd $_
qlever setup-config olympics
qlever get-data
unbuffer qlever index
qlever start --system native
qlever status
qlever stop
ls -lh