feat(cli): emit canonical per-agent skills-install telemetry #935
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: Regression tests | |
| on: | |
| pull_request: | |
| branches: [main, master] | |
| push: | |
| branches: [main, master] | |
| # Large transitive wheels (e.g. nvidia-*/torch via context-engine[all]) can | |
| # exceed uv's default HTTP timeout on GitHub-hosted runners. | |
| env: | |
| UV_HTTP_TIMEOUT: "300" | |
| jobs: | |
| pre-commit: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "0.10.7" | |
| - name: Set up Rust toolchain | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 | |
| with: | |
| toolchain: stable | |
| - name: Install pre-commit | |
| run: python -m pip install pre-commit==4.5.1 | |
| - name: Run pre-commit | |
| run: pre-commit run --all-files --show-diff-on-failure | |
| potpie-parsing: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "0.10.7" | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --no-cache | |
| - name: Run parsing_rs Rust tests | |
| env: | |
| PYO3_PYTHON: ${{ github.workspace }}/.venv/bin/python | |
| run: cargo test --manifest-path potpie/parsing/Cargo.toml --no-default-features | |
| - name: Check for Python package tests | |
| working-directory: potpie/parsing | |
| run: test ! -d tests || uv run --project . pytest tests | |
| potpie-context-package: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "0.10.7" | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --no-cache | |
| - name: Build root and Context Engine distributions | |
| run: | | |
| uv build --out-dir dist/root | |
| uv build --project potpie/context-engine --out-dir dist/context-engine | |
| - name: Verify isolated Context Engine installation | |
| run: | | |
| uv venv .context-engine-package | |
| uv pip install --python .context-engine-package/bin/python dist/context-engine/*.whl | |
| .context-engine-package/bin/python scripts/verify_context_package_isolation.py | |
| - name: Verify isolated root installation | |
| run: | | |
| uv venv .root-package | |
| uv pip install --python .root-package/bin/python dist/context-engine/*.whl dist/root/*.whl | |
| .root-package/bin/python scripts/verify_context_package_isolation.py --expect-root | |
| potpie-root: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12", "3.13", "3.14"] | |
| services: | |
| postgres: | |
| image: postgres:15 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: postgres | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd "pg_isready -U postgres" | |
| --health-interval 5s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| redis: | |
| image: redis:7 | |
| ports: | |
| - 6379:6379 | |
| options: >- | |
| --health-cmd "redis-cli ping" | |
| --health-interval 5s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "0.10.7" | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --no-cache | |
| - name: Run root Potpie tests | |
| env: | |
| POSTGRES_SERVER: "postgresql://postgres:postgres@localhost:5432/postgres" | |
| ENV: "development" | |
| run: uv run pytest tests -m "not premerge_journey" | |
| potpie-context-engine: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12", "3.13", "3.14"] | |
| services: | |
| postgres: | |
| image: postgres:15 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: postgres | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd "pg_isready -U postgres" | |
| --health-interval 5s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| redis: | |
| image: redis:7 | |
| ports: | |
| - 6379:6379 | |
| options: >- | |
| --health-cmd "redis-cli ping" | |
| --health-interval 5s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "0.10.7" | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --no-cache | |
| - name: Run context-engine package tests | |
| working-directory: potpie/context-engine | |
| env: | |
| POSTGRES_SERVER: "postgresql://postgres:postgres@localhost:5432/postgres" | |
| ENV: "development" | |
| run: uv run --project . pytest tests -m "not premerge_journey" | |
| premerge-cli-journey: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| # Journey subprocess budgets sum to ~670s, plus checkout/toolchain/uv sync | |
| # and workflow UV_HTTP_TIMEOUT=300 on large wheel fetches. | |
| timeout-minutes: 15 | |
| 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: "0.10.7" | |
| - name: Set up Rust toolchain | |
| uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 | |
| with: | |
| toolchain: stable | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --no-cache | |
| - name: Run pre-merge CLI journey test | |
| env: | |
| PREMERGE_JOURNEY_REQUIRED: "1" | |
| run: uv run pytest tests/integration/test_premerge_cli_journey.py -v | |
| potpie-sandbox: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| with: | |
| version: "0.10.7" | |
| - name: Install dependencies | |
| run: uv sync --frozen --all-packages --no-cache | |
| - name: Run sandbox unit tests | |
| working-directory: potpie/sandbox | |
| run: uv run --project . --extra daytona pytest tests/unit | |
| - name: Run sandbox local integration tests | |
| working-directory: potpie/sandbox | |
| run: uv run --project . --extra daytona pytest tests/integration/test_docker_runtime.py tests/e2e/test_local_subprocess_e2e.py |