Full-stack tests #333
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: "Full-stack tests" | |
on: | |
push: | |
workflow_dispatch: | |
schedule: | |
- cron: "50 3/6 * * *" | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} {0} | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "ubuntu-latest" | |
- "macos-latest" # this is probably macos-14 | |
python-version: | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
env: | |
OE_LICENSE: ${{ github.workspace }}/oe_license.txt | |
PYTEST_ARGS: -x -n logical --rootdir=. --durations=20 | |
steps: | |
- uses: actions/checkout@v4 | |
# Each of these checkouts can be done on a feature branch | |
# https://github.com/actions/checkout#checkout-a-different-branch | |
# Only check out the repos whose tests directly run; development | |
# installs of other packages are brought in via pip via micromamba | |
- name: Checkout Interchange | |
uses: actions/checkout@v4 | |
with: | |
repository: openforcefield/openff-interchange | |
path: openff-interchange | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Checkout QCSubmit | |
uses: actions/checkout@v4 | |
with: | |
repository: openforcefield/openff-qcsubmit | |
path: openff-qcsubmit | |
- name: Checkout OpenFF Fragmenter | |
uses: actions/checkout@v4 | |
with: | |
repository: openforcefield/openff-fragmenter | |
path: openff-fragmenter | |
- name: Checkout OpenFF Units | |
uses: actions/checkout@v4 | |
with: | |
repository: openforcefield/openff-units | |
path: openff-units | |
- name: Checkout OpenFF Models | |
uses: actions/checkout@v4 | |
with: | |
repository: openforcefield/openff-models | |
path: openff-models | |
- name: Set up conda environment | |
uses: mamba-org/setup-micromamba@v2 | |
with: | |
environment-file: devtools/conda-envs/full-stack.yaml | |
create-args: python=${{ matrix.python-version }} | |
- name: Make oe_license.txt file from GH org secret "OE_LICENSE" | |
env: | |
OE_LICENSE_TEXT: ${{ secrets.OE_LICENSE }} | |
run: echo "${OE_LICENSE_TEXT}" > ${OE_LICENSE} | |
- name: Install most recent development versions | |
run: | | |
python -m pip install -e \ | |
openff-interchange/ \ | |
openff-interchange/plugins/ \ | |
openff-qcsubmit/ \ | |
openff-units/ \ | |
openff-models/ | |
- name: Run 'everything all at once' tests | |
run: | | |
python -m pytest $PYTEST_ARGS \ | |
openff-interchange/openff/interchange/_tests/ \ | |
--ignore=openff-interchange/openff/interchange/_tests/unit_tests/components/test_packmol.py \ | |
--ignore=openff-interchange/openff/interchange/_tests/test_parameter_plugins.py::test_force_field_custom_handler \ | |
--ignore=openff-interchange/openff/interchange/_tests/test_forcefield.py::TestForceFieldPluginLoading \ | |
--ignore=openff-interchange/openff/interchange/_tests/test_parameter_plugins.py \ | |
--ignore=openff-interchange/openff/interchange/_tests/unit_tests/smirnoff/test_create.py::TestCreateWithPlugins \ | |
--ignore=openff-interchange/openff/interchange/_tests/test_parameter_plugins.py::test_load_handler_plugins | |
- name: Run QC-adjacent tests | |
run: | | |
python -m pytest $PYTEST_ARGS \ | |
openff-qcsubmit/openff/qcsubmit/_tests/ \ | |
--ignore=openff-qcsubmit/openff/qcsubmit/_tests/test_submissions.py | |
- name: Run NAGL tests via pyargs | |
if: matrix.os == 'FOOBAR' | |
run: | | |
python -m pytest -nauto --pyargs "openff.nagl" |