feat: MetaFieldRanker update #11216
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
# If you change this name also do it in tests_skipper.yml and ci_metrics.yml | |
name: Tests | |
on: | |
workflow_dispatch: # Activate this workflow manually | |
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: | |
- "haystack/**/*.py" | |
- "test/**/*.py" | |
- "test/test_requirements.txt" | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
CORE_AZURE_CS_ENDPOINT: ${{ secrets.CORE_AZURE_CS_ENDPOINT }} | |
CORE_AZURE_CS_API_KEY: ${{ secrets.CORE_AZURE_CS_API_KEY }} | |
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} | |
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }} | |
PYTHON_VERSION: "3.8" | |
jobs: | |
black: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install Black | |
run: | | |
pip install --upgrade pip | |
pip install .[dev] | |
- name: Check status | |
run: | | |
if ! black . --check; then | |
git status | |
exit 1 | |
fi | |
- name: Calculate alert data | |
id: calculator | |
shell: bash | |
if: (success() || failure()) && github.ref_name == 'main' | |
run: | | |
if [ "${{ job.status }}" = "success" ]; then | |
echo "alert_type=success" >> "$GITHUB_OUTPUT"; | |
else | |
echo "alert_type=error" >> "$GITHUB_OUTPUT"; | |
fi | |
- name: Send event to Datadog | |
if: (success() || failure()) && github.ref_name == 'main' | |
uses: masci/datadog@v1 | |
with: | |
api-key: ${{ secrets.CORE_DATADOG_API_KEY }} | |
api-url: https://api.datadoghq.eu | |
events: | | |
- title: "${{ github.workflow }} workflow" | |
text: "Job ${{ github.job }} in branch ${{ github.ref_name }}" | |
alert_type: "${{ steps.calculator.outputs.alert_type }}" | |
source_type_name: "Github" | |
host: ${{ github.repository_owner }} | |
tags: | |
- "project:${{ github.repository }}" | |
- "job:${{ github.job }}" | |
- "run_id:${{ github.run_id }}" | |
- "workflow:${{ github.workflow }}" | |
- "branch:${{ github.ref_name }}" | |
- "url:https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
install-dependencies: | |
name: Install and cache ${{ matrix.os }} dependencies | |
needs: black | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install Haystack and the dependencies needed for tests | |
run: pip install -r test/test_requirements.txt | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: pip-${{ runner.os }}-${{ github.run_id }}-${{ github.run_attempt }} | |
unit-tests: | |
name: Unit / ${{ matrix.os }} | |
needs: install-dependencies | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Restore Python dependencies | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: pip-${{ runner.os }}-${{ github.run_id }}-${{ github.run_attempt }} | |
- name: Run | |
run: pytest --cov-report xml:coverage.xml --cov="haystack" -m "not integration" test | |
- name: Coveralls | |
# We upload only coverage for ubuntu as handling both os | |
# complicates the workflow too much for little to no gain | |
if: matrix.os == 'ubuntu-latest' | |
uses: coverallsapp/github-action@v2 | |
with: | |
path-to-lcov: coverage.xml | |
- name: Calculate alert data | |
id: calculator | |
shell: bash | |
if: (success() || failure()) && github.ref_name == 'main' | |
run: | | |
if [ "${{ job.status }}" = "success" ]; then | |
echo "alert_type=success" >> "$GITHUB_OUTPUT"; | |
else | |
echo "alert_type=error" >> "$GITHUB_OUTPUT"; | |
fi | |
- name: Send event to Datadog | |
if: (success() || failure()) && github.ref_name == 'main' | |
uses: masci/datadog@v1 | |
with: | |
api-key: ${{ secrets.CORE_DATADOG_API_KEY }} | |
api-url: https://api.datadoghq.eu | |
events: | | |
- title: "${{ github.workflow }} workflow" | |
text: "Job ${{ github.job }} in branch ${{ github.ref_name }}" | |
alert_type: "${{ steps.calculator.outputs.alert_type }}" | |
source_type_name: "Github" | |
host: ${{ github.repository_owner }} | |
tags: | |
- "project:${{ github.repository }}" | |
- "job:${{ github.job }}" | |
- "run_id:${{ github.run_id }}" | |
- "workflow:${{ github.workflow }}" | |
- "branch:${{ github.ref_name }}" | |
- "url:https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
integration-tests-linux: | |
name: Integration / ubuntu-latest | |
needs: unit-tests | |
runs-on: ubuntu-latest | |
services: | |
tika: | |
image: apache/tika:2.9.0.0 | |
ports: | |
- 9998:9998 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install ffmpeg # for local Whisper tests | |
- name: Restore Python dependencies | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: pip-${{ runner.os }}-${{ github.run_id }}-${{ github.run_attempt }} | |
- name: Run | |
run: pytest --maxfail=5 -m "integration" test | |
- name: Calculate alert data | |
id: calculator | |
shell: bash | |
if: (success() || failure()) && github.ref_name == 'main' | |
run: | | |
if [ "${{ job.status }}" = "success" ]; then | |
echo "alert_type=success" >> "$GITHUB_OUTPUT"; | |
else | |
echo "alert_type=error" >> "$GITHUB_OUTPUT"; | |
fi | |
- name: Send event to Datadog | |
if: (success() || failure()) && github.ref_name == 'main' | |
uses: masci/datadog@v1 | |
with: | |
api-key: ${{ secrets.CORE_DATADOG_API_KEY }} | |
api-url: https://api.datadoghq.eu | |
events: | | |
- title: "${{ github.workflow }} workflow" | |
text: "Job ${{ github.job }} in branch ${{ github.ref_name }}" | |
alert_type: "${{ steps.calculator.outputs.alert_type }}" | |
source_type_name: "Github" | |
host: ${{ github.repository_owner }} | |
tags: | |
- "project:${{ github.repository }}" | |
- "job:${{ github.job }}" | |
- "run_id:${{ github.run_id }}" | |
- "workflow:${{ github.workflow }}" | |
- "branch:${{ github.ref_name }}" | |
- "url:https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
integration-tests-macos: | |
name: Integration / macos-latest | |
needs: unit-tests | |
runs-on: macos-latest | |
env: | |
HAYSTACK_MPS_ENABLED: false | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install dependencies | |
run: | | |
brew install ffmpeg # for local Whisper tests | |
- name: Restore Python dependencies | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: pip-${{ runner.os }}-${{ github.run_id }}-${{ github.run_attempt }} | |
- name: Run | |
run: pytest --maxfail=5 -m "integration" test -k 'not tika' | |
- name: Calculate alert data | |
id: calculator | |
shell: bash | |
if: (success() || failure()) && github.ref_name == 'main' | |
run: | | |
if [ "${{ job.status }}" = "success" ]; then | |
echo "alert_type=success" >> "$GITHUB_OUTPUT"; | |
else | |
echo "alert_type=error" >> "$GITHUB_OUTPUT"; | |
fi | |
- name: Send event to Datadog | |
if: (success() || failure()) && github.ref_name == 'main' | |
uses: masci/datadog@v1 | |
with: | |
api-key: ${{ secrets.CORE_DATADOG_API_KEY }} | |
api-url: https://api.datadoghq.eu | |
events: | | |
- title: "${{ github.workflow }} workflow" | |
text: "Job ${{ github.job }} in branch ${{ github.ref_name }}" | |
alert_type: "${{ steps.calculator.outputs.alert_type }}" | |
source_type_name: "Github" | |
host: ${{ github.repository_owner }} | |
tags: | |
- "project:${{ github.repository }}" | |
- "job:${{ github.job }}" | |
- "run_id:${{ github.run_id }}" | |
- "workflow:${{ github.workflow }}" | |
- "branch:${{ github.ref_name }}" | |
- "url:https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
integration-tests-windows: | |
name: Integration / windows-latest | |
needs: unit-tests | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Restore Python dependencies | |
uses: actions/cache/restore@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: pip-${{ runner.os }}-${{ github.run_id }}-${{ github.run_attempt }} | |
- name: Run | |
run: pytest --maxfail=5 -m "integration" test -k 'not tika' | |
- name: Calculate alert data | |
id: calculator | |
shell: bash | |
if: (success() || failure()) && github.ref_name == 'main' | |
run: | | |
if [ "${{ job.status }}" = "success" ]; then | |
echo "alert_type=success" >> "$GITHUB_OUTPUT"; | |
else | |
echo "alert_type=error" >> "$GITHUB_OUTPUT"; | |
fi | |
- name: Send event to Datadog | |
if: (success() || failure()) && github.ref_name == 'main' | |
uses: masci/datadog@v1 | |
with: | |
api-key: ${{ secrets.CORE_DATADOG_API_KEY }} | |
api-url: https://api.datadoghq.eu | |
events: | | |
- title: "${{ github.workflow }} workflow" | |
text: "Job ${{ github.job }} in branch ${{ github.ref_name }}" | |
alert_type: "${{ steps.calculator.outputs.alert_type }}" | |
source_type_name: "Github" | |
host: ${{ github.repository_owner }} | |
tags: | |
- "project:${{ github.repository }}" | |
- "job:${{ github.job }}" | |
- "run_id:${{ github.run_id }}" | |
- "workflow:${{ github.workflow }}" | |
- "branch:${{ github.ref_name }}" | |
- "url:https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
catch-all: | |
name: Catch-all check | |
runs-on: ubuntu-latest | |
# This job will be executed only after all the other tests | |
# are successful. | |
# This way we'll be able to mark only this test as required | |
# and skip it accordingly. | |
needs: | |
- integration-tests-linux | |
- integration-tests-macos | |
- integration-tests-windows | |
steps: | |
- name: Finisher | |
run: echo "Finish him!" |