-
Notifications
You must be signed in to change notification settings - Fork 4
158 lines (126 loc) · 4.1 KB
/
tests.yaml
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: tests
on:
push:
permissions:
contents: write
jobs:
formatting:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run ruff
uses: astral-sh/ruff-action@v3
with:
src: "./src"
version-file: "uv.lock"
tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- 3.9
- "3.10"
- 3.11
name: test - ${{ matrix.python-version }}
steps:
### SETUP ###
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install graph-pes and required dependencies
run: uv sync --extra test
- name: Useful info
run: uv pip freeze
### CODE TESTS ###
- name: Run tests
run: PYTHONPATH=. uv run pytest --cov --cov-report xml tests/
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
# only upload coverage reports for the first python version
if: matrix.python-version == '3.9'
with:
token: ${{secrets.CODECOV_TOKEN}}
- name: Run a very small training run
run: |
uv run graph-pes-train configs/minimal.yaml \
data/+load_atoms_dataset/n_train=10 \
data/+load_atoms_dataset/n_valid=10 \
fitting/trainer_kwargs/max_epochs=5 \
wandb=null \
general/root_dir=results \
general/run_id=test-run
- name: Run a very small testing run
run: |
uv run graph-pes-test model_path=results/test-run/model.pt \
data/+file_dataset/path=tests/helpers/test.xyz \
data/+file_dataset/cutoff=5.0
docs:
runs-on: ubuntu-latest
steps:
### SETUP ###
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.9
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install pandoc
run: sudo apt-get install -y --no-install-recommends pandoc
- name: Install graph-pes and required dependencies
run: uv sync --extra docs
### DOCS ###
- name: Build docs
# -n: nitpick:
# -W: turn warnings into errors
run: uv run sphinx-build -nW docs/source docs/build --keep-going
- name: Publich docs
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
uses: peaceiris/actions-gh-pages@v3
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/build/
force_orphan: true
mace-torch-interface:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install graph-pes and required dependencies
run: uv pip install --system --upgrade ".[test]"
- name: Install mace-torch
run: uv pip install --system mace-torch torch==2.5 # TODO: unfix this version
- name: Run tests
run: uv run pytest src/graph_pes/interfaces/mace_test.py -vvv
mattersim-interface:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.9"
- uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install graph-pes and required dependencies
run: uv pip install --system --upgrade ".[test]"
- name: Install mattersim
run: uv pip install --system mattersim==1.0.0
- name: Run tests
run: uv run pytest src/graph_pes/interfaces/mattersim_test.py -vvv