@@ -10,13 +10,25 @@ concurrency:
1010 cancel-in-progress : ${{ github.event_name == 'pull_request' }}
1111
1212jobs :
13- generic-cpu :
13+ generic :
14+ name : >-
15+ Generic (${{ matrix.OS }}) (${{ matrix.PYTEST_FLAGS == '-m required' && 'CPU' || 'GPU' }})
16+ (${{ matrix.PYTHON_VERSION }})
17+
1418 strategy :
1519 fail-fast : false
1620 matrix :
1721 # See official Github documentation for details: https://shorturl.at/NJgsj
18- OS : [' ubuntu-22.04', ' ubuntu-24.04', ' macos-15', ' windows-2025' ]
22+ OS : [" ubuntu-22.04", " ubuntu-24.04", " macos-15", " windows-2025" ]
1923 PYTHON_VERSION : ["3.10", "3.11", "3.12"]
24+ PYTEST_FLAGS : ["-m required"]
25+ include :
26+ - OS : " macos-15-xlarge" # (MacOS Arm - Apple M1) 6CPU+8GPU, 14GB RAM, 14GB SSD
27+ PYTHON_VERSION : " 3.12"
28+ - OS : " gpu-t4-4-core" # (Linux x86) 4CPU, NVIDIA Tesla T4 16 GB VRAM, 28 GB RAM, 176 GB SSD
29+ PYTHON_VERSION : " 3.12"
30+ - OS : " win-gpu-t4-4-core" # (Windows x86) 4CPU, NVIDIA Tesla T4 16 GB VRAM, 28 GB RAM, 176 GB SSD
31+ PYTHON_VERSION : " 3.12"
2032
2133 env :
2234 HF_HUB_DOWNLOAD_TIMEOUT : 60
@@ -63,24 +75,29 @@ jobs:
6375
6476 echo "PYOPENGL_PLATFORM=osmesa" >> $GITHUB_ENV
6577
66- - name : Install system dependencies (Linux)
67- if : startsWith(matrix.OS, 'ubuntu-')
78+ - name : Install system dependencies (Linux CPU+GPU )
79+ if : startsWith(matrix.OS, 'ubuntu-') || matrix.OS == 'gpu-t4-4-core'
6880 run : |
6981 sudo apt-get update
7082 sudo apt install -y \
7183 libgl1 \
7284 libegl1 \
73- libglvnd-dev \
74- libglew-dev \
85+ libgles2 \
7586 libegl-dev \
76- libx11-6 \
77- libxrender1 \
7887 libglib2.0-0 \
7988 libosmesa6-dev \
80- libglx-mesa0 \
8189 libglu1-mesa \
90+ libglx-mesa0 \
8291 libegl1-mesa-dev \
8392 libgles2-mesa-dev
93+ - name : Install system dependencies (Linux CPU only)
94+ if : startsWith(matrix.OS, 'ubuntu-')
95+ run : |
96+ sudo apt install -y \
97+ libglew-dev \
98+ libglvnd-dev \
99+ libxrender1 \
100+ libx11-6
84101 - name : Install python dependencies
85102 run : |
86103 pip install --upgrade pip setuptools pkg-info wheel
98115
99116 - name : Run unit tests
100117 run : |
101- pytest -v --forked -m required ./tests
118+ pytest -v --forked ${{ matrix.PYTEST_FLAGS }} ./tests
102119
103120 - name : Save Updated Taichi Kernel Cache
104121 if : always()
0 commit comments