Skip to content

E2E Tests

E2E Tests #467

Workflow file for this run

name: E2E Tests
permissions:
contents: read
on:
schedule:
- cron: "0 8 * * mon-fri"
workflow_dispatch:
pull_request:
paths:
- "e2e_tests/**"
workflow_call:
secrets:
E2E_API_KEY:
required: true
E2E_ENVIRONMENT:
required: true
E2E_TEAM:
required: true
jobs:
e2e:
name: End to End Testing
permissions:
contents: read
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
poetry-version: ["1.3.1"]
os: [ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Free Disk space
shell: bash
if: matrix.os == 'ubuntu-latest'
run: |
sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android
sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET
- name: Harden Runner
uses: step-security/harden-runner@5c7944e73c4c2a096b17a9cb74d65b6c2bbafbde # v2.9.1
with:
egress-policy: audit
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- uses: actions/setup-python@39cd14951b08e74b54015e9e001cdefcf80e669f # v5.1.1
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: python -m pip install --upgrade pip
- name: Setup Poetry
uses: abatilo/actions-poetry@c31426b23a8080795905ec73c9e458a2447cb2f2
with:
poetry-version: ${{ matrix.poetry-version }}
- name: Install dependencies
run: |
poetry install --no-interaction --no-root --all-extras -vvv
pip install wheel
pip install --upgrade setuptools
pip install --editable ".[test,ml,medical,dev,ocv]"
pip install pytest
- name: Run Tests
run: python -m pytest e2e_tests --reruns 3 --reruns-delay 10 -W ignore::DeprecationWarning
env:
E2E_API_KEY: ${{ secrets.E2E_API_KEY }}
E2E_ENVIRONMENT: ${{ secrets.E2E_ENVIRONMENT }}
E2E_TEAM: ${{ secrets.E2E_TEAM }}
slack-notifier:
name: Slack Notifier Bot
needs: e2e
if: failure() && github.event_name == 'schedule'
permissions:
contents: read
uses: ./.github/workflows/JOB_slack_message.yml
with:
message: |
*Nightly E2E run failed*
:link:
- https://github.com/v7labs/darwin-py/actions/runs/${{ github.run_id }}
:warning: ${{ github.workflow }} failed.
icon: ":warning:"
at_team: true
secrets: inherit