Formation energies in ML potentials #16456
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: 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 |