Use partial functions in flows to increase user flexibility in setting job attributes (e.g. executor) #8222
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 | |
run: pytest --durations=10 --cov=quacc --cov-report=xml | |
- name: Upload code coverage report to Artifact | |
uses: actions/upload-artifact@v3 | |
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/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@v3 | |
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: Install pip packages | |
run: | | |
pip install -r tests/requirements.txt | |
pip install -r tests/requirements-${{ matrix.wflow_engine }}.txt | |
pip install -r tests/phonopy.txt | |
pip install .[dev] | |
- 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@v3 | |
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@v3 | |
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@v3 | |
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@v3 | |
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@v3 | |
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 .[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@v3 | |
with: | |
name: ${{ github.job }} coverage report | |
path: "coverage.xml" | |
retention-days: 1 | |
codecov: | |
needs: | |
- tests-core | |
- tests-engines-covalent | |
- tests-engines | |
- tests-psi4 | |
- tests-defects-phonons-espresso | |
- tests-qchem-sella | |
- tests-mlps | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download coverage artifacts | |
uses: actions/download-artifact@v3 | |
- name: Upload coverage to Codecov | |
uses: Wandalen/wretry.action@v1 | |
with: | |
action: codecov/codecov-action@v3 | |
attempt_limit: 5 | |
attempt_delay: 30000 | |
with: | | |
fail_ci_if_error: true |