Add CI workflow and ignore .DS_Store

Closes the no-CI gap surfaced in the post-merge retrospective. The org
reusable workflows live under Sea-Haven-Industries and assume SAM/CDK
projects — orchestrator is a personal CLI tool with neither, so this is
a standalone workflow on the same conventions (actions/checkout@v6,
Python 3.12, ruff).

- lint job: ruff check + ruff format --check.
- test-collect job: installs requirements + runs `pytest --collect-only`.
  Catches import errors and golden-set test discovery regressions without
  needing live ANTHROPIC/COMPOSIO secrets — full pytest stays a local
  pre-push responsibility.

Also adds .DS_Store to the local .gitignore (also covered by the user
global gitignore, but belt-and-suspenders).
This commit is contained in:
Adam Moussa 2026-05-15 13:13:41 -04:00
parent 652eaaae17
commit fb5dbb20ee
2 changed files with 51 additions and 0 deletions

50
.github/workflows/ci.yaml vendored Normal file
View file

@ -0,0 +1,50 @@
name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install ruff
run: pip install ruff
- name: Ruff check
run: ruff check .
- name: Ruff format check
run: ruff format --check .
test-collect:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
cache-dependency-path: requirements.txt
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install pytest python-dotenv
- name: Pytest collect-only
# Verifies all test modules + their imports resolve cleanly.
# Live test execution requires ANTHROPIC_API_KEY + COMPOSIO_API_KEY
# and runs locally before push, not in CI.
run: pytest --collect-only -q

1
.gitignore vendored
View file

@ -6,3 +6,4 @@ __pycache__/
.cache/
.pytest_cache/
.ruff_cache/
.DS_Store