-
Notifications
You must be signed in to change notification settings - Fork 206
133 lines (125 loc) · 3.91 KB
/
Copy pathci.yml
File metadata and controls
133 lines (125 loc) · 3.91 KB
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
on:
push:
branches: [main]
pull_request:
branches: [main]
types: [opened, reopened, synchronize, edited]
jobs:
format:
name: Ruff format
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.13"]
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.27"
python-version: ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }}
run: uv python install
- name: Format with Ruff
run: |
uvx ruff format --check .
linter:
name: Ruff linter
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.13"]
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.27"
python-version: ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }}
run: uv python install
- name: Lint with Ruff
run: |
uvx ruff check --output-format=github .
pre-commit:
name: Pre-commit checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.27"
python-version: "3.13"
- name: Set up Python
run: uv python install
- name: Run pre-commit
run: |
uvx --with absl-py pre-commit run -a
test-locked-deps:
name: Test with locked uv dependencies
# Tests against exact versions pinned in uv.lock
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.13"]
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
version: "0.9.27"
python-version: ${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }}
run: uv python install
- name: Restore Warp kernel cache
uses: actions/cache@v4
with:
path: ~/.cache/warp
key: warp-kernels-${{ runner.os }}-${{ runner.arch }}-${{ matrix.python-version }}-${{ hashFiles('uv.lock', 'mujoco_warp/**/*.py') }}
restore-keys: |
warp-kernels-${{ runner.os }}-${{ runner.arch }}-${{ matrix.python-version }}-
- name: Test with pytest
run: |
uv run --with pytest --with pytest-xdist pytest -n 2
test-stable-deps:
name: Test with stable PyPI dependencies
# Tests against stable releases from pypi.org (not custom indexes like pypi.nvidia.com)
# This ensures the library works for users installing dependencies from standard PyPI
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.13"]
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install stable dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-xdist
python -m pip install .
- name: Test with pytest
run: |
pytest -n 2
- name: Out-of-bounds check for batched model fields
run: |
pytest -k io_test --debug_mode
kernel_analyzer:
name: Kernel analyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install absl-py
- name: Run kernel analyzer
run: |
python contrib/kernel_analyzer/kernel_analyzer/cli.py mujoco_warp/_src/*.py --output=github