haystack/.github/workflows/rest_api_tests.yml
2023-03-17 13:55:07 +01:00

104 lines
2.8 KiB
YAML

# If you change this name also do it in ci_metrics.yml
name: REST API Tests
on:
push:
branches:
- main
# release branches have the form v1.9.x
- "v[0-9].*[0-9].x"
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review
paths:
- "rest_api/**.py"
- "rest_api/pyproject.toml"
env:
PYTHON_VERSION: "3.8"
jobs:
black:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Black
run: |
pip install --upgrade pip
pip install .[formatting]
- name: Check status
run: |
if ! black . --check; then
git status
echo "###################################################################################################"
echo "# "
echo "# CHECK FAILED! Black found issues with your code formatting."
echo "# "
echo "# Either:"
echo "# 1. Run Black locally before committing:"
echo "# "
echo "# pip install .[formatting]"
echo "# black ."
echo "# "
echo "# 2. Install the pre-commit hook:"
echo "# "
echo "# pre-commit install --hook-type pre-push"
echo "# "
echo "# 3. See https://github.com/deepset-ai/haystack/blob/main/CONTRIBUTING.md for help."
echo "# "
echo "# If you have further problems, please open an issue: https://github.com/deepset-ai/haystack/issues"
echo "# "
echo "##################################################################################################"
exit 1
fi
- uses: act10ns/slack@v2
with:
status: ${{ job.status }}
channel: "#haystack"
if: failure() && github.ref == 'refs/heads/main'
rest_api:
needs: black
strategy:
matrix:
os: [windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install REST API
run: |
pip install -U "./rest_api[dev]"
pip install ".[dev]"
pip install .
- name: Run tests
env:
PYTEST_PARAMS: --maxfail=5 --durations=10 --suppress-no-test-exit-code
run: |
pytest ${{ env.PYTEST_PARAMS }} rest_api/
- uses: act10ns/slack@v2
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
with:
status: ${{ job.status }}
channel: "#haystack"
if: failure() && github.ref == 'refs/heads/main'