Integrate ES into search services, create first search-related tests … #472
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: Run Server Tests | |
on: | |
push: | |
branches: | |
- development | |
- main | |
paths: | |
- "Tekst-API/tekst/**" | |
- "Tekst-API/tests/**" | |
- "Tekst-API/pyproject.toml" | |
- "Tekst-API/poetry.lock" | |
- ".github/workflows/server-tests.yml" | |
pull_request: | |
branches: | |
- development | |
paths: | |
- "Tekst-API/tekst/**" | |
- "Tekst-API/tests/**" | |
- "Tekst-API/pyproject.toml" | |
- "Tekst-API/poetry.lock" | |
- ".github/workflows/server-tests.yml" | |
workflow_dispatch: | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./Tekst-API | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: "poetry" | |
cache-dependency-path: "./Tekst-API/poetry.lock" | |
- name: Install dependencies | |
run: poetry install --sync | |
- name: Configure sysctl limits for ES | |
run: | | |
sudo swapoff -a | |
sudo sysctl -w vm.swappiness=1 | |
sudo sysctl -w fs.file-max=262144 | |
sudo sysctl -w vm.max_map_count=262144 | |
- name: Cancel on setup error | |
if: failure() | |
uses: andymckay/[email protected] | |
- name: Run tests | |
if: always() | |
run: | | |
docker compose -f dev/compose.yml --profile test -p tekst-testing up --detach | |
printf "Waiting for MongoDB service"; while ! $(curl -f http://127.0.0.1:27017 > /dev/null 2>&1); do sleep 1; printf "."; done; printf "\n" | |
printf "Waiting for Elasticsearch service"; while ! $(curl -f http://127.0.0.1:9200 > /dev/null 2>&1); do sleep 1; printf "."; done; printf "\n" | |
TEKST_DEV_MODE=true TEKST_CUSTOM_ENV_FILE=.env.test TEKST_EMAIL__SMTP_STARTTLS=false poetry run coverage run -m pytest && poetry run coverage lcov | |
- name: Coveralls | |
uses: coverallsapp/github-action@v2 |