add Containers #1869
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install uv | |
uses: astral-sh/setup-uv@v6 | |
with: | |
version: "0.6.2" | |
python-version: ${{ matrix.python-version }} | |
- name: Install "all" dependencies | |
run: uv sync --extra all | |
- 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: 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 sync --extra mattersim --extra fairchem --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: Install dgl dependencies | |
run: | | |
uv sync --extra mace --extra m3gnet --extra alignn --extra d3 | |
uv pip install --reinstall pynvml | |
- name: Run test suite for dgl dependencies | |
env: | |
# show timings of tests | |
PYTEST_ADDOPTS: "--durations=0" | |
run: uv run --no-sync pytest tests/test_{mlip_calculators,single_point,eos}.py | |
- name: Create space in cache | |
run: | | |
rm -rf ~/.cache/* | |
uv cache clean | |
- name: Install UMA | |
run: | | |
uv sync --extra uma | |
uv pip install --reinstall pynvml | |
uv pip install fairchem-core[torch-extras] --no-build-isolation | |
- name: Run test suite for UMA | |
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 | |
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 | |
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 ) |