* update deps and tweak logic so axolotl is pip installable * use vcs url format * using dependency_links isn't supported per docs)
113 lines
3.0 KiB
YAML
113 lines
3.0 KiB
YAML
name: Tests
|
|
on:
|
|
# check on push/merge to main, PRs, and manual triggers
|
|
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' # 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.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' # caching pip dependencies
|
|
|
|
- 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'
|
|
# this job needs to be run on self-hosted GPU runners...
|
|
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
|
|
- cuda: 121
|
|
cuda_version: 12.1.0
|
|
python_version: "3.11"
|
|
pytorch: 2.3.0
|
|
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
|