chore(deps): Update @posthog/mcp to 0.21.0 #198769
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
| # This workflow runs the tests for the LLM Gateway service | |
| # (services/llm-gateway/). It lives outside the Backend CI workflow because | |
| # the service has no runtime dependencies on the PostHog Django backend — it | |
| # only needs Python + uv + pytest. | |
| # | |
| # The `llm_services_tests` roll-up is what gets marked as a required check | |
| # in branch protection: new LLM-service test jobs can be added to its `needs` | |
| # array without reconfiguring required checks in the GitHub UI. | |
| name: LLM Services CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| changes: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| name: Determine need to run LLM Services checks | |
| outputs: | |
| llm_gateway: ${{ steps.filter.outputs.llm_gateway || 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| sparse-checkout: .github/actions/paths-filter | |
| sparse-checkout-cone-mode: false | |
| - uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1 | |
| id: app-token | |
| if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository | |
| with: | |
| client-id: ${{ vars.GH_APP_POSTHOG_PATHS_FILTER_APP_ID }} | |
| private-key: ${{ secrets.GH_APP_POSTHOG_PATHS_FILTER_PRIVATE_KEY }} | |
| - uses: ./.github/actions/paths-filter | |
| id: filter | |
| if: github.event_name != 'push' # Run all tests on master push | |
| with: | |
| token: ${{ steps.app-token.outputs.token || github.token }} | |
| filters: | | |
| llm_gateway: | |
| - 'services/llm-gateway/**' | |
| - '.github/workflows/ci-llm-gateway.yml' | |
| - '.github/actions/setup-uv/**' | |
| llm-gateway: | |
| name: LLM Gateway Tests | |
| needs: changes | |
| if: needs.changes.outputs.llm_gateway == 'true' | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| defaults: | |
| run: | |
| working-directory: services/llm-gateway | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: '3.14.7' | |
| token: ${{ github.token }} | |
| - name: Install uv | |
| uses: ./.github/actions/setup-uv | |
| with: | |
| enable-cache: false | |
| - name: Install dependencies | |
| run: uv sync --frozen --dev | |
| - name: Run tests | |
| id: run-tests | |
| env: | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} | |
| FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }} | |
| AWS_DEFAULT_REGION: us-east-1 | |
| CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_LLM_GATEWAY_TOKEN }} | |
| CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
| run: uv run pytest tests/ -v --tb=short --junitxml=junit.xml | |
| - name: Upload test results | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| if: always() | |
| with: | |
| name: junit-results-llm-gateway | |
| path: services/llm-gateway/junit.xml | |
| # Single required status check for branch protection. Add future LLM | |
| # services test jobs to `needs` here rather than reconfiguring GitHub. | |
| llm_services_tests: | |
| needs: [changes, llm-gateway] | |
| name: LLM Services Tests Pass | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| # !cancelled(): a superseded run records cancelled (which branch protection | |
| # does not treat as a pass) instead of running on to report failure. A cancelled | |
| # or timed-out dependency on a live run is still caught by the != success && | |
| # != skipped checks below; a legitimate no-change skip passes. | |
| if: ${{ !cancelled() }} | |
| steps: | |
| - name: Check outcomes | |
| run: | | |
| if [[ "${{ needs.changes.result }}" != "success" && "${{ needs.changes.result }}" != "skipped" ]]; then | |
| echo "Change detection did not succeed (result: ${{ needs.changes.result }})." | |
| exit 1 | |
| fi | |
| if [[ "${{ needs.llm-gateway.result }}" != "success" && "${{ needs.llm-gateway.result }}" != "skipped" ]]; then | |
| echo "LLM Gateway tests did not succeed (result: ${{ needs.llm-gateway.result }})." | |
| exit 1 | |
| fi | |
| echo "All LLM Services checks passed." |