feat: add Codex CLI provider #30
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Q CLI Provider | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| paths: | |
| - 'src/cli_agent_orchestrator/providers/q_cli.py' | |
| - 'test/providers/**' | |
| - 'pyproject.toml' | |
| - '.github/workflows/test-q-cli-provider.yml' | |
| pull_request: | |
| branches: [ main, develop ] | |
| paths: | |
| - 'src/cli_agent_orchestrator/providers/q_cli.py' | |
| - 'test/providers/**' | |
| - 'pyproject.toml' | |
| - '.github/workflows/test-q-cli-provider.yml' | |
| jobs: | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --all-extras --dev | |
| - name: Run unit tests with coverage | |
| run: | | |
| uv run pytest test/providers/test_q_cli_unit.py \ | |
| --cov=src/cli_agent_orchestrator/providers/q_cli.py \ | |
| --cov-report=xml \ | |
| --cov-report=term-missing \ | |
| -v | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| file: ./coverage.xml | |
| flags: unittests | |
| name: codecov-umbrella | |
| fail_ci_if_error: false | |
| env: | |
| CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
| integration-tests: | |
| name: Integration Tests | |
| runs-on: ubuntu-latest | |
| # Only run integration tests on main branch or manual trigger | |
| if: github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch' | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| - name: Set up Python | |
| run: uv python install 3.12 | |
| - name: Install dependencies | |
| run: uv sync --all-extras --dev | |
| - name: Install tmux | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y tmux | |
| # Note: Q CLI installation and authentication steps would go here | |
| # These are commented out as they require AWS credentials and Q CLI setup | |
| # - name: Install Q CLI | |
| # run: | | |
| # # Add Q CLI installation steps | |
| # - name: Configure Q CLI | |
| # env: | |
| # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| # run: | | |
| # # Add Q CLI configuration steps | |
| # - name: Run integration tests | |
| # run: uv run pytest test/providers/test_q_cli_integration.py -v | |
| - name: Skip integration tests (Q CLI not configured) | |
| run: | | |
| echo "Integration tests skipped - Q CLI setup required" | |
| echo "To enable integration tests, configure AWS credentials and Q CLI" | |
| lint: | |
| name: Code Quality | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: "uv.lock" | |
| - name: Set up Python | |
| run: uv python install 3.12 | |
| - name: Install dependencies | |
| run: uv sync --all-extras --dev | |
| - name: Check code formatting with black | |
| run: uv run black --check src/ test/ | |
| - name: Check import sorting with isort | |
| run: uv run isort --check-only src/ test/ | |
| - name: Run type checker with mypy | |
| run: uv run mypy src/ | |
| continue-on-error: true |