File size: 3,123 Bytes
1078d3e
658ed86
1078d3e
dd83a20
1078d3e
 
5d931cc
 
f4868d7
9032e61
dd83a20
5d931cc
 
f4868d7
9032e61
1078d3e
d199d6c
 
1078d3e
 
 
 
 
 
 
6d4bbb8
1078d3e
 
 
 
 
d199d6c
658ed86
d35278a
658ed86
6d4bbb8
7803f09
d199d6c
 
 
2b8c28b
d199d6c
 
2b8c28b
d199d6c
658ed86
72b6ca0
a653392
d199d6c
 
05b398a
 
b6ab8aa
34c0a86
d199d6c
 
 
9218ebe
1078d3e
9032e61
 
 
0001862
 
1078d3e
 
9032e61
 
 
 
 
 
 
a359579
5894f0e
0001862
9032e61
 
 
1b18003
0001862
8cb127a
 
 
3319780
8cb127a
ef22351
 
 
 
 
1078d3e
9032e61
 
0001862
 
1078d3e
0001862
 
9032e61
0001862
 
 
1078d3e
0001862
 
 
 
 
 
badda37
0001862
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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/[email protected]

  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