name: CI on: push: branches: [main] pull_request: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: lint: name: Lint & format runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Install uv uses: astral-sh/setup-uv@v7 with: enable-cache: true cache-dependency-glob: "uv.lock" - name: Set up Python run: uv python install 3.12 - name: Sync dependencies run: uv sync --all-extras --dev - name: ruff check run: uv run ruff check . - name: ruff format --check run: uv run ruff format --check . smoke: name: Import & CLI smoke (${{ matrix.python-version }}) runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v6 - name: Install uv uses: astral-sh/setup-uv@v7 with: enable-cache: true cache-dependency-glob: "uv.lock" - name: Set up Python ${{ matrix.python-version }} run: uv python install ${{ matrix.python-version }} - name: Sync dependencies run: uv sync --all-extras --dev - name: Import devgen run: uv run python -c "import devgen, devgen.ai, devgen.utils, devgen.cli.main; print('imports OK')" - name: CLI --help run: uv run devgen --help - name: CLI commit --help run: uv run devgen commit --help