Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: CI

on:
push:
branches: ["**"]
pull_request:
branches: ["**"]

jobs:
lint-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install uv
uses: astral-sh/setup-uv@v3

- name: Install dependencies
run: uv sync --dev

- name: Ruff lint
run: uv run ruff check .

- name: Ruff format check
run: uv run ruff format --check .

- name: Type check with mypy
run: uv run mypy src/open_data_agent --ignore-missing-imports

- name: Run unit tests (no integration)
run: uv run pytest -m "not integration" --tb=short
48 changes: 48 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
.Python
*.egg-info/
dist/
build/
.venv/
venv/
*.egg

# uv
.uv/

# Test / coverage
.pytest_cache/
.coverage
htmlcov/
coverage.xml

# Auto-generated content (never commit)
docs/data-catalog/
history/
.opencode/rules/data-agent.md
evals/results/

# BMAD framework installation (tool infrastructure, not project code)
_bmad/
# BMAD generated outputs (all)
_bmad-output/
# BMAD IDE agent configs (generated from _bmad installation)
.opencode/agents/
.opencode/commands/

# Environment
.env
*.env.local

# OS
.DS_Store
Thumbs.db

# IDE
.idea/
.vscode/
*.swp
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
31 changes: 31 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
version: "3.8"

services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: oda_test
POSTGRES_PASSWORD: oda_test_pass
POSTGRES_DB: oda_test_db
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U oda_test"]
interval: 5s
timeout: 5s
retries: 5

mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: oda_root_pass
MYSQL_USER: oda_test
MYSQL_PASSWORD: oda_test_pass
MYSQL_DATABASE: oda_test_db
ports:
- "3306:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "oda_test", "-poda_test_pass"]
interval: 5s
timeout: 5s
retries: 10
Loading