-
Notifications
You must be signed in to change notification settings - Fork 18
129 lines (104 loc) · 3.55 KB
/
ci.yml
File metadata and controls
129 lines (104 loc) · 3.55 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
name: ci
on: [push, pull_request]
jobs:
tests:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
python-version: ["3.10","3.11","3.12", "3.13"]
steps:
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
- name: Create space in cache
run: |
rm -rf ~/.cache/*
uv cache clean
- name: Install "all" dependencies
run: uv sync --extra chgnet --extra dpa3 --extra d3 --extra grace --extra mace --extra orb --extra upet --extra plumed
- name: Install PLUMED
uses: Iximiel/install-plumed@v1
id: plumed
continue-on-error: true
- name: Set environment variable based on plumed success
run: |
if [ "${{ steps.plumed.outcome }}" = "success" ]; then
echo "PLUMED_KERNEL=${{ steps.plumed.outputs.plumed_prefix }}/lib/libplumedKernel.so" >> $GITHUB_ENV
fi
- name: Download extra models
run: |
python3 tests/models/extra_models.py tests/models/extra
- name: Run test suite
env:
# show timings of tests
PYTEST_ADDOPTS: "--durations=0"
run: uv run --no-sync pytest --cov janus_core --cov-append .
- name: Install updated e3nn dependencies
run: |
uv cache clean
uv sync --extra mattersim --extra fairchem --extra sevennet --extra nequip --extra d3
uv pip install --reinstall pynvml
uv pip install fairchem-core[torch-extras] --no-build-isolation
- name: Run test suite for updated e3nn dependencies
env:
# show timings of tests
PYTEST_ADDOPTS: "--durations=0"
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: uv run --no-sync pytest tests/test_{mlip_calculators,single_point}.py
- name: Report coverage to Coveralls
uses: coverallsapp/github-action@v2
with:
parallel: true
fail-on-error: false
flag-name: run-${{ matrix.python-version }}
file: coverage.xml
base-path: janus_core
coverage:
needs: tests
runs-on: ubuntu-latest
steps:
- name: Close parallel build
uses: coverallsapp/github-action@v2
with:
parallel-finished: true
fail-on-error: false
docs:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Check all sources documented
run: |
diff -y --suppress-common-lines \
<(git ls-files janus_core/** | sed '/.py$/!d; s/\/__init__.py//; s#/#.#g; s/.py$//' | sort) \
<(sed -nr '/automodule/{s/.*::\s*//;p}' docs/source/apidoc/* | sort)
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: "3.12"
- name: Install pandoc
uses: pandoc/actions/setup@v1
- name: Install dependencies
run: |
uv sync --extra mace
uv pip install --reinstall pynvml
- name: Build docs
run: cd docs && uv run make html
pre-commit:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: "3.12"
- name: Install dependencies
run: uv sync
- name: Run pre-commit
run: |
uv run pre-commit install
uv run pre-commit run --all-files || ( git status --short ; git diff ; exit 1 )