# 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: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK 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: slackapi/slack-github-action@v1.23.0 if: failure() && github.ref == 'refs/heads/main' with: payload: | { "blocks": [ { "type": "context", "elements": [ { "type": "image", "image_url": "https://avatars.githubusercontent.com/u/${{ github.actor_id }}?v=4", "alt_text": "Actor" }, { "type": "mrkdwn", "text": "**" } ] }, { "type": "section", "text": { "type": "mrkdwn", "text": "Job ${{ github.job }} in workflow " } }, { "type": "context", "elements": [ { "type": "mrkdwn", "text": "Triggered by ${{ github.event_name }} for ${{ github.ref_type }} `${{ github.ref_name }}`" } ] }, { "type": "context", "elements": [ { "type": "image", "image_url": "https://github.githubassets.com/favicons/favicon.png", "alt_text": "Github logo" }, { "type": "mrkdwn", "text": " Run " } ] } ] } 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: slackapi/slack-github-action@v1.23.0 if: failure() && github.ref == 'refs/heads/main' with: payload: | { "blocks": [ { "type": "context", "elements": [ { "type": "image", "image_url": "https://avatars.githubusercontent.com/u/${{ github.actor_id }}?v=4", "alt_text": "Actor" }, { "type": "mrkdwn", "text": "**" } ] }, { "type": "section", "text": { "type": "mrkdwn", "text": "Job ${{ github.job }} in workflow " } }, { "type": "context", "elements": [ { "type": "mrkdwn", "text": "Triggered by ${{ github.event_name }} for ${{ github.ref_type }} `${{ github.ref_name }}`" } ] }, { "type": "context", "elements": [ { "type": "image", "image_url": "https://github.githubassets.com/favicons/favicon.png", "alt_text": "Github logo" }, { "type": "mrkdwn", "text": " Run " } ] } ] }