name: Tests | |
on: | |
# check on push/merge to main, PRs, and manual triggers | |
push: | |
branches: | |
- "main" | |
paths: | |
- '**.py' | |
- 'requirements.txt' | |
pull_request: | |
paths: | |
- '**.py' | |
- 'requirements.txt' | |
workflow_dispatch: | |
jobs: | |
pre-commit: | |
name: pre-commit | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
cache: 'pip' # caching pip dependencies | |
- uses: pre-commit/action@v3.0.0 | |
pytest: | |
name: PyTest | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python_version: ["3.9", "3.10"] | |
timeout-minutes: 10 | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python_version }} | |
cache: 'pip' # caching pip dependencies | |
- name: Install dependencies | |
run: | | |
pip3 install -U -e . | |
pip3 install -r requirements-tests.txt | |
- name: Run tests | |
run: | | |
pytest --ignore=tests/e2e/ tests/ | |
e2e-test: | |
name: E2E Tests | |
runs-on: [self-hosted, gpu] | |
timeout-minutes: 20 | |
needs: [pre-commit, pytest] | |
steps: | |
- name: Check out repository code | |
uses: actions/checkout@v3 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
# cache: 'pip' # caching pip dependencies | |
- name: Install dependencies | |
run: | | |
pip3 uninstall -y transformers accelerate | |
pip3 install -U -e .[flash-attn] | |
pip3 install -r requirements-tests.txt | |
- name: Run e2e tests | |
run: | | |
pytest tests/e2e/ | |