mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
c45d47d4b2
* Tuning validate-01-get-started * Add gh token * Add model * enable debug log * bump up timeout for testing purposes * Test cli is working * Fix end quote * Run gh auth * Run gh auth trail 2 * Run gh auth trail 3 * Test token * Add zcure login * Add zcure login 2 * Add zcure login 3 * Add zcure login 4 * Extract common actions * Extract common actions 2 * Correct env vars * Print outputs to action console * Disable end-to-end samples * Fix ruff errors * Fix ruff errors 2 * Revert workflow changes to fix tests * Revert workflow changes to fix tests 2 * Revert workflow changes to fix tests 3 * Revert workflow changes to fix tests 4
303 lines
11 KiB
YAML
303 lines
11 KiB
YAML
name: Python - Sample Validation
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "0 0 * * *" # Run at midnight UTC daily
|
|
|
|
env:
|
|
# Configure a constant location for the uv cache
|
|
UV_CACHE_DIR: /tmp/.uv-cache
|
|
# GitHub Copilot configuration
|
|
GITHUB_COPILOT_MODEL: claude-opus-4.6
|
|
COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
|
|
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
|
|
jobs:
|
|
validate-01-get-started:
|
|
name: Validate 01-get-started
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Required configuration for get-started samples
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir 01-get-started --save-report --report-name 01-get-started
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-01-get-started
|
|
path: python/samples/_sample_validation/reports/
|
|
|
|
validate-02-agents:
|
|
name: Validate 02-agents
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Azure AI configuration
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure OpenAI configuration
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
|
|
AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# OpenAI configuration
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
OPENAI_CHAT_MODEL_ID: ${{ vars.OPENAI_CHAT_MODEL_NAME }}
|
|
OPENAI_RESPONSES_MODEL_ID: ${{ vars.OPENAI_REASONING_MODEL_NAME }}
|
|
# Observability
|
|
ENABLE_INSTRUMENTATION: "true"
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir 02-agents --save-report --report-name 02-agents
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-02-agents
|
|
path: python/samples/_sample_validation/reports/
|
|
|
|
validate-03-workflows:
|
|
name: Validate 03-workflows
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Azure AI configuration
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure OpenAI configuration
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
|
|
AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir 03-workflows --save-report --report-name 03-workflows
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-03-workflows
|
|
path: python/samples/_sample_validation/reports/
|
|
|
|
validate-04-hosting:
|
|
name: Validate 04-hosting
|
|
if: false # Temporarily disabled because of sample complexity
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Azure AI configuration
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure OpenAI configuration
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# A2A configuration
|
|
A2A_AGENT_HOST: http://localhost:5001/
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir 04-hosting --save-report --report-name 04-hosting
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-04-hosting
|
|
path: python/samples/_sample_validation/reports/
|
|
|
|
validate-05-end-to-end:
|
|
name: Validate 05-end-to-end
|
|
if: false # Temporarily disabled because of sample complexity
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Azure AI configuration
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure OpenAI configuration
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
|
|
AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure AI Search (for evaluation samples)
|
|
AZURE_SEARCH_ENDPOINT: ${{ secrets.AZURE_SEARCH_ENDPOINT }}
|
|
AZURE_SEARCH_API_KEY: ${{ secrets.AZURE_SEARCH_API_KEY }}
|
|
AZURE_SEARCH_INDEX_NAME: ${{ secrets.AZURE_SEARCH_INDEX_NAME }}
|
|
# Evaluation sample
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME_WORKFLOW: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir 05-end-to-end --save-report --report-name 05-end-to-end
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-05-end-to-end
|
|
path: python/samples/_sample_validation/reports/
|
|
|
|
validate-autogen-migration:
|
|
name: Validate autogen-migration
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Azure AI configuration
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure OpenAI configuration
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
|
|
# OpenAI configuration
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
OPENAI_CHAT_MODEL_ID: ${{ vars.OPENAI_CHAT_MODEL_NAME }}
|
|
OPENAI_RESPONSES_MODEL_ID: ${{ vars.OPENAI_REASONING_MODEL_NAME }}
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir autogen-migration --save-report --report-name autogen-migration
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-autogen-migration
|
|
path: python/samples/_sample_validation/reports/
|
|
|
|
validate-semantic-kernel-migration:
|
|
name: Validate semantic-kernel-migration
|
|
runs-on: ubuntu-latest
|
|
environment: integration
|
|
env:
|
|
# Azure AI configuration
|
|
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
|
|
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# Azure OpenAI configuration
|
|
AZURE_OPENAI_ENDPOINT: ${{ vars.AZUREOPENAI__ENDPOINT }}
|
|
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__CHATDEPLOYMENTNAME }}
|
|
AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME: ${{ vars.AZUREOPENAI__RESPONSESDEPLOYMENTNAME }}
|
|
# OpenAI configuration
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
OPENAI_CHAT_MODEL_ID: ${{ vars.OPENAI_CHAT_MODEL_ID }}
|
|
OPENAI_RESPONSES_MODEL_ID: ${{ vars.OPENAI_RESPONSES_MODEL_ID }}
|
|
# Copilot Studio
|
|
COPILOTSTUDIOAGENT__ENVIRONMENTID: ${{ secrets.COPILOTSTUDIOAGENT__ENVIRONMENTID }}
|
|
COPILOTSTUDIOAGENT__SCHEMANAME: ${{ secrets.COPILOTSTUDIOAGENT__SCHEMANAME }}
|
|
COPILOTSTUDIOAGENT__TENANTID: ${{ secrets.COPILOTSTUDIOAGENT__TENANTID }}
|
|
COPILOTSTUDIOAGENT__AGENTAPPID: ${{ secrets.COPILOTSTUDIOAGENT__AGENTAPPID }}
|
|
defaults:
|
|
run:
|
|
working-directory: python
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Setup environment
|
|
uses: ./.github/actions/sample-validation-setup
|
|
with:
|
|
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
|
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
|
azure-subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
|
|
os: ${{ runner.os }}
|
|
|
|
- name: Run sample validation
|
|
run: |
|
|
cd samples && uv run python -m _sample_validation --subdir semantic-kernel-migration --save-report --report-name semantic-kernel-migration
|
|
|
|
- name: Upload validation report
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: validation-report-semantic-kernel-migration
|
|
path: python/samples/_sample_validation/reports/
|