Skip to content

Formation energies in ML potentials #16456

Formation energies in ML potentials

Formation energies in ML potentials #16456

Workflow file for this run

name: tests
env:
PY_COLORS: 1
on:
push:
branches: [main]
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests-core:
strategy:
fail-fast: true
matrix:
python-version: ["3.11", "3.13"]
os: [ubuntu-latest, windows-latest]
exclude:
- os: windows-latest
python-version: "3.11"
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest (w/ coverage)
run: pytest --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} ${{ matrix.python-version }} ${{ matrix.os }} coverage report
path: "coverage.xml"
retention-days: 1
tests-engines:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
wflow_engine: [dask, parsl, prefect, redun, jobflow]
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: 3.12
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Set up conda
if: matrix.wflow_engine == 'dask'
uses: conda-incubator/setup-miniconda@v3
with:
python-version: "3.13"
activate-environment: quacc-env
- name: Install conda packages
if: matrix.wflow_engine == 'dask'
run: conda install -c conda-forge qe=7.4 'libgcc<15'
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-${{ matrix.wflow_engine }}.txt -r tests/requirements-phonons.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest --durations=10 tests/${{ matrix.wflow_engine }} --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} ${{ matrix.wflow_engine }} coverage report
path: "coverage.xml"
retention-days: 1
tests-psi4:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Set up conda
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
activate-environment: quacc-env
- name: Install conda packages
run: conda install psi4 -c conda-forge
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'psi4' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-defects-phonons-espresso:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Set up conda
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
activate-environment: quacc-env
- name: Install conda packages
run: conda install -c conda-forge qe=7.4 'libgcc<15.0'
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-defects.txt -r tests/requirements-phonons.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'defects or phonon or espresso' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-tblite-dftbplus:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Set up conda
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
activate-environment: quacc-env
- name: Install conda packages
run: conda install -c conda-forge dftbplus
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-tblite.txt -r tests/requirements-phonons.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'dftb or tblite' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-qchem-sella:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Set up conda
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
activate-environment: quacc-env
- name: Install conda packages
run: conda install -c conda-forge openbabel
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-sella.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'qchem or sella' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-sevenn-orb-newtonnet:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-sevenn.txt -r tests/requirements-orb.txt -r tests/requirements-newtonnet.txt -r tests/requirements-sella.txt -r tests/requirements-phonons.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'mlp or newtonnet or geodesic' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-mace-matgl:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-mace.txt -r tests/requirements-matgl.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'mlp' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-fairchem:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-fairchem.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: HuggingFace Hub Login
env:
HF_TOKEN: ${{ secrets.HUGGING_FACE_TOKEN }}
run: |
if [ -n "$HF_TOKEN" ]; then
hf auth login --token "$HF_TOKEN"
else
echo "HF_TOKEN is not set. Skipping login."
fi
- name: Run tests with pytest
run: pytest -k 'mlp or fairchem' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-mp:
strategy:
fail-fast: true
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-mp.txt "quacc[dev] @ ."
- name: Set coverage core
run: |
echo "COVERAGE_CORE=sysmon" >> $GITHUB_ENV
- name: Run tests with pytest
run: pytest -k 'matpes or mp_ or mof_off' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
tests-torchsim:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
cache: pip
cache-dependency-path: tests/requirements**.txt
- name: Install pip packages
run: |
pip install uv
uv pip install --system -r tests/requirements.txt -r tests/requirements-torchsim.txt "quacc[dev] @ ."
- name: Run tests with pytest
run: pytest -k 'torchsim' --durations=10 --cov=quacc --cov-report=xml
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.job }} coverage report
path: "coverage.xml"
retention-days: 1
codecov:
needs:
- tests-core
- tests-engines
- tests-psi4
- tests-defects-phonons-espresso
- tests-tblite-dftbplus
- tests-qchem-sella
- tests-sevenn-orb-newtonnet
- tests-mace-matgl
- tests-fairchem
- tests-mp
- tests-torchsim
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download coverage artifacts
uses: actions/download-artifact@v7
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
fail_ci_if_error: true