Simplify API model unions usage #485
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: Start test service stack | |
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" | |
- name: Cancel on setup error | |
if: failure() | |
uses: andymckay/[email protected] | |
- name: Run tests | |
if: always() | |
run: 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 |