Skip to content

build: revamp cli package #60

build: revamp cli package

build: revamp cli package #60

Workflow file for this run

name: CLI Lint & Test
on:
push:
branches:
- main
paths:
- 'cli/**'
pull_request:
branches:
- main
paths:
- 'cli/**'
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
env:
working-directory: "./cli"
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install uv
working-directory: ${{env.working-directory}}
run:
curl -LsSf https://astral.sh/uv/0.9.2/install.sh | sh
- name: Install venv (dependencies + app)
working-directory: ${{env.working-directory}}
run: uv sync --frozen --group dev
- name: Run Black (Code Formatter Check)
working-directory: ${{env.working-directory}}
run: |
uv run black --check --diff ./
- name: Run isort (Import Sorting Check)
working-directory: ${{env.working-directory}}
run: |
uv run isort --check-only --diff ./
- name: Run Flake8 (Linting)
working-directory: ${{env.working-directory}}
run: |
uv run flake8 ./ --count --select=E9,F63,F7,F82 --show-source --statistics
uv run flake8 ./ --count --exit-zero --max-complexity=10 --max-line-length=88 --statistics
- name: Run Static Checks
working-directory: ${{env.working-directory}}
run: |
uv run mypy ./ --ignore-missing-imports || true
- name: Test CLI Installation
working-directory: ${{env.working-directory}}
run: |
# Test CLI commands work
uv run cli.py --help
uv run cli.py hello greet --help
test:
runs-on: ubuntu-latest
env:
working-directory: "./cli"
needs: lint
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Install uv
working-directory: ${{env.working-directory}}
run:
curl -LsSf https://astral.sh/uv/0.9.2/install.sh | sh
- name: Install venv (dependencies + app)
working-directory: ${{env.working-directory}}
run: uv sync --frozen --group dev
- name: Run Tests
working-directory: ${{env.working-directory}}
run: |
# Run tests if they exist
if [ -f test_*.py ] || [ -f *_test.py ] || [ -d tests ]; then
uv run pytest --cov=. --cov-report=term-missing
else
echo "No tests found, running basic smoke test"
uv run cli.py --help
fi