| name: Tests |
| on: |
| |
| push: |
| branches: |
| - "main" |
| paths: |
| - '**.py' |
| - 'requirements.txt' |
| - '.github/workflows/*.yml' |
| pull_request: |
| paths: |
| - '**.py' |
| - 'requirements.txt' |
| - '.github/workflows/*.yml' |
| 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.10" |
| cache: 'pip' |
| - uses: pre-commit/action@v3.0.0 |
|
|
| pytest: |
| name: PyTest |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| python_version: ["3.10", "3.11"] |
| timeout-minutes: 20 |
|
|
| 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' |
|
|
| - name: Install dependencies |
| run: | |
| pip3 install --upgrade pip |
| pip3 install --upgrade packaging |
| pip3 install -U -e . |
| pip3 install -r requirements-tests.txt |
| |
| - name: Run tests |
| run: | |
| pytest --ignore=tests/e2e/ tests/ |
| |
| docker-e2e-tests: |
| if: github.repository_owner == 'OpenAccess-AI-Collective' |
| |
| runs-on: [self-hosted, modal] |
| timeout-minutes: 60 |
| needs: [pre-commit, pytest] |
|
|
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| - cuda: 118 |
| cuda_version: 11.8.0 |
| python_version: "3.10" |
| pytorch: 2.1.2 |
| axolotl_args: "--extra-index-url https://download.pytorch.org/whl/cu118" |
| num_gpus: 1 |
| - cuda: 121 |
| cuda_version: 12.1.0 |
| python_version: "3.10" |
| pytorch: 2.1.2 |
| num_gpus: 1 |
| - cuda: 121 |
| cuda_version: 12.1.0 |
| python_version: "3.11" |
| pytorch: 2.2.2 |
| num_gpus: 1 |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v4 |
| - name: Install Python |
| uses: actions/setup-python@v5 |
| with: |
| python-version: "3.10" |
| - name: Install Modal |
| run: | |
| python -m pip install --upgrade pip |
| pip install modal jinja2 |
| - name: Update env vars |
| run: | |
| echo "BASE_TAG=main-base-py${{ matrix.python_version }}-cu${{ matrix.cuda }}-${{ matrix.pytorch }}" >> $GITHUB_ENV |
| echo "PYTORCH_VERSION=${{ matrix.pytorch}}" >> $GITHUB_ENV |
| echo "AXOLOTL_ARGS=${{ matrix.axolotl_args}}" >> $GITHUB_ENV |
| echo "CUDA=${{ matrix.cuda }}" >> $GITHUB_ENV |
| echo "N_GPUS=${{ matrix.num_gpus }}" >> $GITHUB_ENV |
| - name: Run tests job on Modal |
| run: | |
| modal run cicd.tests |
| |