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/