# # Dedicated Python integration tests workflow, called from the manual integration test orchestrator. # Only runs integration tests (core + Azure AI). No sample tests, no paths filtering. # name: python-integration-tests on: workflow_call: inputs: checkout-ref: description: "Git ref to checkout (e.g., refs/pull/123/head)" required: true type: string permissions: contents: read id-token: write env: UV_CACHE_DIR: /tmp/.uv-cache jobs: python-tests-core: name: Python Integration Tests - Core runs-on: ubuntu-latest environment: integration timeout-minutes: 60 env: UV_PYTHON: "3.10" OPENAI_CHAT_MODEL_ID: ${{ vars.OPENAI__CHATMODELID }} OPENAI_RESPONSES_MODEL_ID: ${{ vars.OPENAI__RESPONSESMODELID }} OPENAI_API_KEY: ${{ secrets.OPENAI__APIKEY }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} ANTHROPIC_CHAT_MODEL_ID: ${{ vars.ANTHROPIC_CHAT_MODEL_ID }} AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }} AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }} AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }} LOCAL_MCP_URL: ${{ vars.LOCAL_MCP__URL }} FUNCTIONS_WORKER_RUNTIME: "python" DURABLE_TASK_SCHEDULER_CONNECTION_STRING: "Endpoint=http://localhost:8080;TaskHub=default;Authentication=None" AzureWebJobsStorage: "UseDevelopmentStorage=true" defaults: run: working-directory: python steps: - uses: actions/checkout@v6 with: ref: ${{ inputs.checkout-ref }} - name: Set up python and install the project id: python-setup uses: ./.github/actions/python-setup with: python-version: "3.10" os: ${{ runner.os }} env: UV_CACHE_DIR: /tmp/.uv-cache - name: Azure CLI Login uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Set up Azure Functions Integration Test Emulators uses: ./.github/actions/azure-functions-integration-setup id: azure-functions-setup - name: Test with pytest run: uv run poe all-tests -n logical --dist loadfile --dist worksteal --timeout=120 --session-timeout=900 --timeout_method thread --retries 2 --retry-delay 5 working-directory: ./python python-tests-azure-ai: name: Python Integration Tests - Azure AI runs-on: ubuntu-latest environment: integration timeout-minutes: 60 env: UV_PYTHON: "3.10" AZURE_AI_PROJECT_ENDPOINT: ${{ secrets.AZUREAI__ENDPOINT }} AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREAI__DEPLOYMENTNAME }} LOCAL_MCP_URL: ${{ vars.LOCAL_MCP__URL }} defaults: run: working-directory: python steps: - uses: actions/checkout@v6 with: ref: ${{ inputs.checkout-ref }} - name: Set up python and install the project id: python-setup uses: ./.github/actions/python-setup with: python-version: "3.10" os: ${{ runner.os }} env: UV_CACHE_DIR: /tmp/.uv-cache - name: Azure CLI Login uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Test with pytest timeout-minutes: 15 run: uv run --directory packages/azure-ai poe integration-tests -n logical --dist loadfile --dist worksteal --timeout=120 --session-timeout=900 --timeout_method thread --retries 2 --retry-delay 5 working-directory: ./python