- Project structure: solver/, freecad/, export/, configs/, scripts/, tests/, docs/ - pyproject.toml with dependency groups: core, train, freecad, dev - Hydra configs: dataset (synthetic, fusion360), model (baseline, gat), training (pretrain, finetune), export (production) - Dockerfile with CUDA+PyG GPU and CPU-only targets - docker-compose.yml for train, test, data-gen services - Makefile with targets: train, test, lint, format, type-check, data-gen, export, check - Pre-commit hooks: ruff, mypy, conventional commits - Gitea Actions CI: lint, type-check, test on push/PR - README with setup and usage instructions
66 lines
1.5 KiB
YAML
66 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install ruff mypy
|
|
pip install -e ".[dev]" || pip install ruff mypy numpy
|
|
|
|
- name: Ruff check
|
|
run: ruff check solver/ freecad/ tests/ scripts/
|
|
|
|
- name: Ruff format check
|
|
run: ruff format --check solver/ freecad/ tests/ scripts/
|
|
|
|
type-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install mypy numpy
|
|
pip install torch --index-url https://download.pytorch.org/whl/cpu
|
|
pip install torch-geometric
|
|
pip install -e ".[dev]"
|
|
|
|
- name: Mypy
|
|
run: mypy solver/ freecad/
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install torch --index-url https://download.pytorch.org/whl/cpu
|
|
pip install torch-geometric
|
|
pip install -e ".[train,dev]"
|
|
|
|
- name: Run tests
|
|
run: pytest tests/ freecad/tests/ -v --tb=short
|