Implement MP2024 recipes #13972
This file contains 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: tests | |
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.10", "3.12"] | |
os: [ubuntu-latest, windows-latest] | |
exclude: | |
- os: windows-latest | |
python-version: "3.10" | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
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: Run tests with pytest (w/ coverage) | |
if: matrix.python-version != '3.12' | |
run: pytest --durations=10 --cov=quacc --cov-report=xml | |
- name: Run tests with pytest (w/o coverage) | |
if: matrix.python-version == '3.12' | |
run: pytest --durations=10 | |
- name: Upload code coverage report to Artifact | |
uses: actions/upload-artifact@v4 | |
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: [covalent, dask, parsl, prefect, redun, jobflow] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.wflow_engine == 'covalent' && '3.10' || '3.11' }} | |
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.11" | |
activate-environment: quacc-env | |
- name: Install conda packages | |
if: matrix.wflow_engine == 'dask' | |
run: conda install -c conda-forge qe | |
- 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: Start Covalent server | |
if: matrix.wflow_engine == 'covalent' | |
run: covalent start | |
- name: Run tests with pytest | |
run: pytest --durations=10 tests/${{ matrix.wflow_engine }} --cov=quacc --cov-report=xml | |
- name: Combine Coverage Reports | |
if: matrix.wflow_engine == 'dask' | |
run: | | |
coverage combine -a | |
coverage xml | |
- name: Upload code coverage report to Artifact | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
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 -n base conda-libmamba-solver | |
conda install psi4 -c conda-forge --solver libmamba | |
- name: Install pip packages | |
run: | | |
pip install uv | |
uv pip install --system -r tests/requirements.txt "quacc[dev] @ ." | |
- 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@v4 | |
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@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
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 | |
- 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: 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@v4 | |
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@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
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: 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@v4 | |
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@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
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: 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@v4 | |
with: | |
name: ${{ github.job }} coverage report | |
path: "coverage.xml" | |
retention-days: 1 | |
tests-mlps: | |
strategy: | |
fail-fast: true | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
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-mlp.txt -r tests/requirements-newtonnet.txt -r tests/requirements-sella.txt -r tests/requirements-phonons.txt "quacc[dev] @ ." | |
- name: Run tests with pytest | |
run: pytest -k 'mlp or newtonnet' --durations=10 --cov=quacc --cov-report=xml | |
- name: Upload code coverage report to Artifact | |
uses: actions/upload-artifact@v4 | |
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@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
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: Run tests with pytest | |
run: pytest -k 'mp_' --durations=10 --cov=quacc --cov-report=xml | |
- name: Upload code coverage report to Artifact | |
uses: actions/upload-artifact@v4 | |
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-mlps | |
- tests-mp | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download coverage artifacts | |
uses: actions/download-artifact@v4 | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
with: | |
fail_ci_if_error: true |