Full-stack tests #9
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: "0 1 * * *" | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} {0} | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "ubuntu-latest" | |
- "macos-latest" | |
- "macos-14" # this is actually M1/ARM/Apple Silicon | |
python-version: | |
- "3.10" | |
- "3.11" | |
env: | |
OE_LICENSE: ${{ github.workspace }}/oe_license.txt | |
PYTEST_ARGS: -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 | |
- 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 SMIRNOFF plugins | |
uses: actions/checkout@v4 | |
with: | |
repository: openforcefield/smirnoff-plugins | |
path: smirnoff-plugins | |
- name: Set up conda environment | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: devtools/conda-envs/full-stack.yaml | |
create-args: python=${{ matrix.python-version }} | |
- name: Install GROMACS & NAGL if using x86 | |
if: matrix.os != 'macos-14' | |
run: micromamba install openff-nagl "gromacs =2023.3=nompi_*_103" -c conda-forge --yes | |
- 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: | | |
micromamba remove --force \ | |
openff-interchange \ | |
-y | |
python -m pip install -e \ | |
openff-interchange/ \ | |
openff-interchange/plugins/ \ | |
smirnoff-plugins/ \ | |
openff-qcsubmit/ | |
- name: Run 'everything all at once' tests | |
run: | | |
python -m pytest $PYTEST_ARGS \ | |
smirnoff-plugins/smirnoff_plugins/_tests/ \ | |
openff-interchange/openff/interchange/_tests/ \ | |
--ignore=smirnoff-plugins/smirnoff_plugins/_tests/handlers/test_nonbonded.py \ | |
--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 == 'ubuntu-latest' | |
run: | | |
pip install git+https://github.com/openforcefield/openff-nagl.git@main | |
python -m pytest -nauto --pyargs "openff.nagl" |