Skip to content

Full-stack tests

Full-stack tests #333

Workflow file for this run

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"