dograh/.github/workflows/docs-openapi-drift.yml
Abhishek 0e12c41fc7
chore: bump pipecat version and fix tests (#263)
* chore: bump pipecat version and fix tests

* chore: add github workflow to run tests

* fix: install reqirements.dev.txt in test script

* fix: fix api-test action

* feat: add integration test

* test: add integration tests

* test: add test for function call mute strategy
2026-05-04 21:35:37 +05:30

68 lines
2.2 KiB
YAML

name: Docs OpenAPI drift check
on:
pull_request:
branches: [main]
paths:
- 'api/**'
- 'pipecat/**'
- 'scripts/dump_docs_openapi.py'
- 'docs/api-reference/openapi.json'
- '.github/workflows/docs-openapi-drift.yml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
drift-check:
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
- name: Checkout repo (with pipecat submodule)
uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: pip
cache-dependency-path: |
api/requirements.txt
pipecat/pyproject.toml
- name: Install api dependencies
run: |
pip install -r api/requirements.txt
pip install './pipecat[cartesia,deepgram,openai,elevenlabs,groq,google,azure,sarvam,soundfile,silero,webrtc,speechmatics,openrouter,camb]'
- name: Dump OpenAPI spec
env:
DATABASE_URL: postgresql+asyncpg://dummy:dummy@localhost/dummy
REDIS_URL: redis://localhost:6379/0
ENABLE_AWS_S3: "false"
MINIO_PUBLIC_ENDPOINT: http://localhost:9000
DEPLOYMENT_MODE: oss
run: python -u -m scripts.dump_docs_openapi
- name: Check for drift
run: |
if ! git diff --exit-code docs/api-reference/openapi.json; then
echo "::error::docs/api-reference/openapi.json is out of sync with the FastAPI app."
echo "Run 'python -m scripts.dump_docs_openapi' locally (with api/.env sourced) and commit the result."
exit 1
fi
echo "OpenAPI spec is in sync."
- name: Send Slack notification - Failure
if: failure()
uses: slackapi/slack-github-action@v1.26.0
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
with:
payload: |
{
"text": "❌ Dograh Docs OpenAPI drift check failed on ${{ github.ref_name }} by ${{ github.actor }} - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Logs>"
}