From 40b00b095f8d4180b7a5ccaf238a310f9bbd5e93 Mon Sep 17 00:00:00 2001 From: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> Date: Fri, 28 Aug 2026 12:44:40 -0700 Subject: [PATCH] chore: add CI workflow (pytest, ubuntu, py3.11/3.12); ship pyrightconfig.json This module had no CI at all. Verified clean-room: uv sync --extra dev && uv run pytest -q -> 2 failed, 1540 passed, 12 deselected. Both failures were tests/test_test_quality.py asserting pyrightconfig.json exists at repo root with "tests" and "amplifier_module_provider_github_copilot" in its "include" list -- only pyrightconfig.example.json shipped. Added the real pyrightconfig.json (derived from the example, stripped of the machine-local pythonPath). .gitignore also blanket-ignored .github/ and pyrightconfig.json under a "Local developer configuration" heading (grouped with .vscode/, .claude/, etc.) -- almost certainly an oversight, since .github/ holds CI workflows meant to be committed in virtually every GitHub repo, and pyrightconfig.json is exactly the file the repo's own test suite asserts must be committed. Removed both lines; the rest of that block (IDE/editor configs) is untouched. This repo already had addopts = "-m 'not live'" in pyproject.toml excluding 12 live-network tests by default -- CI relies on that existing behavior, no changes needed there. Note: uv sync --dev does not work here (this repo uses [project.optional-dependencies] dev, not [dependency-groups]) -- CI uses uv sync --extra dev. uv run pytest -q -> 1542 passed, 12 deselected. Generated with Amplifier (https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> --- .github/workflows/ci.yml | 37 +++++++++++++++++++++++++++++++++++++ .gitignore | 2 -- pyrightconfig.json | 10 ++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 pyrightconfig.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a9d5d3b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,37 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + +jobs: + test: + name: pytest (py${{ matrix.python-version }}) + runs-on: ubuntu-latest + # A hang must fail LOUDLY and fast, not sit burning runner time until the + # 6h default -- a job stuck at "in_progress" reads as "not done yet" + # rather than "broken", which is how a false green gets merged. + timeout-minutes: 10 + strategy: + fail-fast: false + matrix: + # requires-python = ">=3.11" -- cover the floor and a current minor. + python-version: ["3.11", "3.12"] + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + # This repo uses [project.optional-dependencies] dev, not + # [dependency-groups] -- `uv sync --extra dev`, not `--dev`. + run: uv sync --extra dev + + - name: Run test suite + # pyproject.toml's own addopts already excludes `live` tests + # (-m 'not live'); nothing extra needed here. + run: uv run pytest -q diff --git a/.gitignore b/.gitignore index 384e153..39c736c 100644 --- a/.gitignore +++ b/.gitignore @@ -66,11 +66,9 @@ next-steps.md ##################################### # Local developer configuration -.github/ *AGENTS.md .claude/ *.code-workspace -pyrightconfig.json .vscode/ .idea/ .history/ diff --git a/pyrightconfig.json b/pyrightconfig.json new file mode 100644 index 0000000..4355e27 --- /dev/null +++ b/pyrightconfig.json @@ -0,0 +1,10 @@ +{ + "include": [ + "amplifier_module_provider_github_copilot", + "tests" + ], + "stubPath": "typings", + "typeCheckingMode": "standard", + "reportMissingModuleSource": "warning", + "reportMissingImports": "warning" +}