Skip to content

Commit 1697768

Browse files
committed
Add GitHub Actions CI (pyclawd check + golden)
Mirrors pydacefit's workflow: matrix over py3.10-3.12, installs the object-based pydacefit from git (it is not on PyPI) before ezmodel, then runs pyclawd doctor / check / golden. Triggers on push to main and on PRs.
1 parent f493cdf commit 1697768

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
jobs:
9+
check:
10+
runs-on: ubuntu-latest
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
python-version: ["3.10", "3.11", "3.12"]
15+
env:
16+
# ezmodel's .pyclawd/config.py leaves conda_env unset; CI has no conda, so
17+
# point pyclawd at the runner's interpreter.
18+
PYCLAWD_PYTHON: python
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set up Python ${{ matrix.python-version }}
23+
uses: actions/setup-python@v5
24+
with:
25+
python-version: ${{ matrix.python-version }}
26+
27+
- name: Install package, dev tools, and pyclawd
28+
run: |
29+
python -m pip install --upgrade pip
30+
# ezmodel needs the object-based pydacefit (not on PyPI); install it from
31+
# git FIRST so it satisfies the dependency before ezmodel is installed.
32+
pip install "git+https://github.com/msu-coinlab/pydacefit.git@main"
33+
pip install -e .
34+
# pin the quality tools so the gate is reproducible across runs
35+
pip install "ruff==0.15.18" "mypy==2.1.0" "pytest==9.1.0" pytest-xdist pytest-cov
36+
pip install "git+https://github.com/anyoptimization/pyclawd.git"
37+
38+
- name: Environment health check
39+
run: pyclawd doctor
40+
41+
- name: Quality gate (format, lint, typecheck, descriptions, tests)
42+
run: pyclawd check
43+
44+
- name: Behavior oracle (golden baselines)
45+
run: pyclawd golden

0 commit comments

Comments
 (0)