# If you change this name also do it in ci_metrics.yml
name: end-to-end

on:
  workflow_dispatch: # Activate this workflow manually
  schedule:
    - cron: "0 0 * * *"
  pull_request:
    types:
      - opened
      - reopened
      - synchronize
    paths:
      - "e2e/**/*.py"
      - ".github/workflows/e2e.yml"

env:
  PYTHON_VERSION: "3.10"
  OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
  HATCH_VERSION: "1.14.2"
  # we use HF_TOKEN instead of HF_API_TOKEN to work around a Hugging Face bug
  # see https://github.com/deepset-ai/haystack/issues/9552
  HF_TOKEN: ${{ secrets.HUGGINGFACE_API_KEY }}

jobs:
  run:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v6

    - uses: actions/setup-python@v6
      with:
        python-version: "${{ env.PYTHON_VERSION }}"

    - name: Install Hatch
      run: pip install hatch==${{ env.HATCH_VERSION }}

    - name: Run tests
      run: hatch run e2e:test

    - name: Send event to Datadog
      if: failure() && github.event_name == 'schedule'
      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: "error"
            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 }}"
