Refactor the start
command and add unit tests
#373
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: 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 |