CLI and tests

This commit is contained in:
AndyMik90
2025-12-15 19:02:39 +01:00
parent 4b242c4a64
commit 9a59b7ebfe
5 changed files with 186 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11', '3.12']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Install dependencies
working-directory: auto-claude
run: |
uv venv
uv pip install -r requirements.txt
uv pip install -r ../tests/requirements-test.txt
- name: Run tests
working-directory: auto-claude
run: |
source .venv/bin/activate
pytest ../tests/ -v --tb=short -x
- name: Run tests with coverage
if: matrix.python-version == '3.12'
working-directory: auto-claude
run: |
source .venv/bin/activate
pytest ../tests/ -v --cov=. --cov-report=xml --cov-report=term-missing
- name: Upload coverage reports
if: matrix.python-version == '3.12'
uses: codecov/codecov-action@v4
with:
file: ./auto-claude/coverage.xml
fail_ci_if_error: false
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
+58
View File
@@ -0,0 +1,58 @@
name: Lint
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install ruff
run: pip install ruff
- name: Run ruff check
run: ruff check auto-claude/ --output-format=github
- name: Run ruff format check
run: ruff format auto-claude/ --check --diff
type-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Install dependencies
working-directory: auto-claude
run: |
uv venv
uv pip install -r requirements.txt
uv pip install -r ../tests/requirements-test.txt
uv pip install types-requests
- name: Run mypy
working-directory: auto-claude
run: |
source .venv/bin/activate
mypy . --ignore-missing-imports --no-error-summary || true
+40
View File
@@ -0,0 +1,40 @@
name: Test on Tag
on:
push:
tags:
- 'v*'
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11', '3.12']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "latest"
- name: Install dependencies
working-directory: auto-claude
run: |
uv venv
uv pip install -r requirements.txt
uv pip install -r ../tests/requirements-test.txt
- name: Run tests
working-directory: auto-claude
run: |
source .venv/bin/activate
pytest ../tests/ -v --tb=short
+2
View File
@@ -4,6 +4,8 @@ Your AI coding companion. Build features, fix bugs, and ship faster — with aut
![Auto Claude Kanban Board](.github/assets/Auto-Claude-Kanban.png)
[![Discord](https://img.shields.io/badge/Discord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/maj9EWmY)
## What It Does ✨
**Auto Claude is a desktop app that supercharges your AI coding workflow.** Whether you're a vibe coder just getting started or an experienced developer, Auto Claude meets you where you are.
+29
View File
@@ -0,0 +1,29 @@
# Ruff configuration for Auto Claude
[lint]
# Enable common rule sets
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
"F", # Pyflakes
"I", # isort
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"UP", # pyupgrade
]
ignore = [
"E501", # line too long (handled by formatter)
"B008", # function call in default argument
"B905", # zip without strict parameter
"E402", # module level import not at top of file
]
[lint.per-file-ignores]
"__init__.py" = ["F401"] # unused imports in __init__.py
"tests/*" = ["B011"] # assert false in tests
[format]
quote-style = "double"
indent-style = "space"
line-ending = "auto"