Graph theoretic fragmentation via graphgen
.
#482
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
# Author(s): Minsik Cho, Shaun Weatherly | |
# Based on: https://docs.github.com/en/actions/use-cases-and-examples/building-and-testing/building-and-testing-python | |
name: Do static analysis and run tests for quemb | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
jobs: | |
analysis: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check trailing whitespace | |
# Idea taken from https://peter.eisentraut.org/blog/2014/11/04/checking-whitespace-with-git | |
# Windows uses different new line convention, thats why we exclude docs/make.bat | |
run: | | |
git diff-tree --check $(git hash-object -t tree /dev/null) HEAD -- '(exclude)docs/make.bat' | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Prepare pip | |
run: | | |
python -m pip install --upgrade pip | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ hashFiles('dev-requirements.txt') }} | |
- name: Install dependencies | |
run: | | |
pip install -r tests/static_analysis_requirements.txt | |
pip install . | |
- name: Check formatting | |
run: | | |
ruff format --diff | |
- name: Static analysis with ruff | |
run: | | |
ruff check . | |
- name: Static analysis with pylint | |
# ruff does nearly everything that we want from pylint | |
# except for detecting unresolved imports | |
# TODO: if they add it to ruff as well https://github.com/astral-sh/ruff/issues/9103 | |
# remove pylint. | |
run: | | |
pylint --disable=all --enable=E0401,R0401,E0611 . | |
- name: Static analysis with mypy | |
run: | | |
mypy tests/ example/ src/ | |
testsuite: | |
runs-on: ubuntu-latest | |
needs: analysis | |
strategy: | |
matrix: | |
python-version: ["3.10", "3.13"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Prepare pip | |
run: | | |
python -m pip install --upgrade pip | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ env.pythonLocation }}-${{ hashFiles('setup.py') }}-${{ hashFiles('dev-requirements.txt') }} | |
- name: Install dependencies | |
run: | | |
pip install -r tests/test_requirements.txt | |
pip install git+https://github.com/pyscf/dmrgscf | |
PYSCFHOME=$(pip show pyscf-dmrgscf | grep 'Location' | tr ' ' '\n' | tail -n 1) | |
wget https://raw.githubusercontent.com/pyscf/dmrgscf/master/pyscf/dmrgscf/settings.py.example | |
mv settings.py.example ${PYSCFHOME}/pyscf/dmrgscf/settings.py | |
pip install . | |
- name: Test with pytest | |
run: | | |
cd tests | |
QUEMB_SKIP_EXPENSIVE_TESTS=true pytest --doctest-modules --junitxml=junit/quemb-test-results_${{ matrix.python-version }}.xml | |
- name: Upload pytest junit results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: quemb-test-results_${{ matrix.python-version }} | |
path: tests/junit/quemb-test-results_${{ matrix.python-version }}.xml |