Skip to content

CI

CI #3028

Workflow file for this run

name: CI
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
defaults:
run:
shell: bash -l {0}
jobs:
test:
name: ${{ matrix.cfg.os }}, 🐍=${{ matrix.python-version }}, program=${{ matrix.cfg.conda-env }}, bleeding-edge=${{ matrix.bleeding-edge }}
runs-on: ${{ matrix.cfg.os }}
strategy:
fail-fast: false
matrix:
python-version:
- "3.11"
- "3.12"
bleeding-edge:
- true
- false
cfg:
- os: ubuntu-latest
conda-env: basic
- os: macOS-latest
conda-env: basic
- os: ubuntu-latest
conda-env: psi4
env:
OE_LICENSE: ${{ github.workspace }}/oe_license.txt
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Conda Environment
uses: mamba-org/setup-micromamba@v2
with:
environment-file: devtools/conda-envs/${{ matrix.cfg.conda-env }}.yaml
create-args: >-
python=${{ matrix.python-version }}
- name: License OpenEye
run: |
echo "${SECRET_OE_LICENSE}" > ${OE_LICENSE}
python -c "from openeye import oechem; assert oechem.OEChemIsLicensed()"
env:
SECRET_OE_LICENSE: ${{ secrets.OE_LICENSE }}
- name: Optionally install development upstreams
if: ${{ matrix.bleeding-edge == true }}
run: |
micromamba remove --force \
qcportal \
qcfractal \
qcarchivetesting \
qcfractalcompute \
qcelemental \
qcengine \
qcmanybody
python -m pip install \
git+https://github.com/MolSSI/QCFractal.git#subdirectory=qcportal \
git+https://github.com/MolSSI/QCFractal.git#subdirectory=qcfractal \
git+https://github.com/MolSSI/QCFractal.git#subdirectory=qcarchivetesting \
git+https://github.com/MolSSI/QCFractal.git#subdirectory=qcfractalcompute \
git+https://github.com/MolSSI/QCElemental.git \
git+https://github.com/MolSSI/QCEngine.git \
git+https://github.com/MolSSI/QCManyBody.git
- name: Install Package
run: python -m pip install .
- name: Repeat environment info
run: micromamba list && pip list
- name: Run Tests
run: |
python -m pytest -r xfEs -n logical --cov=openff openff/qcsubmit/_tests/ --cov-report=xml
- name: Run example notebooks
env:
PYTEST_ARGS: -p no:randomly -r fE -v -x --tb=short -nauto
NB_ARGS: --nbval-lax --dist loadscope
run: |
python -m pytest $PYTEST_ARGS $NB_ARGS examples
- name: Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./coverage.xml
fail_ci_if_error: true