added pdos job and flow #9686
Workflow file for this run
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: | |
branches: | |
- main | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
tests-core: | |
strategy: | |
fail-fast: true | |
matrix: | |
python-version: ["3.9", "3.12"] | |
os: [ubuntu-latest, windows-latest] | |
exclude: | |
- os: windows-latest | |
python-version: "3.9" | |
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 -r tests/requirements.txt | |
pip install .[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-covalent: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
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.10" | |
cache: pip | |
cache-dependency-path: tests/requirements**.txt | |
- name: Install pip packages | |
run: | | |
pip install -r tests/requirements.txt | |
pip install -r tests/requirements-covalent.txt | |
pip install -r tests/requirements-phonopy.txt | |
pip install .[dev] | |
- name: Start Covalent server | |
run: covalent start | |
- name: Run tests with pytest | |
run: pytest --durations=10 tests/covalent --cov=quacc --cov-report=xml | |
- name: Stop Covalent server | |
run: covalent stop | |
- 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-engines: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
wflow_engine: [dask, parsl, 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: "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 -r tests/requirements.txt | |
pip install -r tests/requirements-${{ matrix.wflow_engine }}.txt | |
pip install -r tests/requirements-phonopy.txt | |
pip install .[dev] | |
- 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-engines2: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
wflow_engine: [prefect] | |
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 -r tests/requirements.txt | |
pip install -r tests/requirements-${{ matrix.wflow_engine }}.txt | |
pip install -r tests/requirements-phonopy.txt | |
pip install .[dev] | |
pip install starlette==0.32.0 | |
- 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@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 python=3.11 -c conda-forge/label/libint_dev -c conda-forge --solver libmamba | |
- name: Install pip packages | |
run: | | |
pip install -r tests/requirements.txt | |
pip install .[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 -r tests/requirements.txt | |
pip install -r tests/requirements-defects.txt | |
pip install -r tests/requirements-phonopy.txt | |
pip install .[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 -r tests/requirements.txt | |
pip install -r tests/requirements-tblite.txt | |
pip install -r tests/requirements-phonopy.txt | |
pip install .[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 | |
conda install -c pytorch pytorch | |
- name: Install pip packages | |
run: | | |
pip install -r tests/requirements.txt | |
pip install -r tests/requirements-sella.txt | |
pip install .[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: Set up conda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
activate-environment: quacc-env | |
- name: Install pip packages | |
run: | | |
pip install -r tests/requirements.txt | |
pip install -r tests/requirements-mlp.txt | |
pip install -r tests/requirements-newtonnet.txt | |
pip install -r tests/requirements-phonopy.txt | |
pip install .[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 | |
codecov: | |
needs: | |
- tests-core | |
- tests-engines-covalent | |
- tests-engines | |
- tests-engines2 | |
- tests-psi4 | |
- tests-defects-phonons-espresso | |
- tests-tblite-dftbplus | |
- tests-qchem-sella | |
- tests-mlps | |
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: Wandalen/wretry.action@v1 | |
with: | |
action: codecov/codecov-action@v3 | |
attempt_limit: 10 | |
attempt_delay: 30000 |