Skip to content

Agent Builder Tests #15598

Agent Builder Tests

Agent Builder Tests #15598

name: Agent Builder Tests
on:
workflow_run:
workflows: ['Quality assurance']
types:
- completed
jobs:
check-changes:
if: ${{ github.repository == 'mastra-ai/mastra' }}
runs-on: ubuntu-latest
outputs:
agent-builder-changed: ${{ steps.changes.outputs.agent-builder }}
permissions:
contents: read
statuses: write
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
ref: ${{ github.event.workflow_run.head_sha }}
- name: Set pending status
uses: ./.github/workflows/shared-actions/set-pr-status
with:
status: 'pending'
context: 'Agent Builder Tests'
description: 'Checking for changes'
sha: ${{ github.event.workflow_run.head_sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
target_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: Check for agent-builder package changes
uses: dorny/paths-filter@v3
id: changes
with:
base: main
ref: ${{ github.event.workflow_run.head_sha }}
predicate-quantifier: 'every'
filters: |
agent-builder:
- '!(**/*.md)packages/**'
- '!(**/*.md)stores/**'
skip-tests:
needs: check-changes
if: needs.check-changes.outputs.agent-builder-changed == 'false'
runs-on: ubuntu-latest
permissions:
statuses: write
steps:
- uses: actions/checkout@v5
- name: Set success status for unchanged agent-builder
uses: ./.github/workflows/shared-actions/set-pr-status
with:
status: 'success'
context: 'Agent Builder Tests'
description: 'Agent Builder package unchanged - skipping tests'
sha: ${{ github.event.workflow_run.head_sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
target_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
test:
needs: check-changes
if: ${{ github.repository == 'mastra-ai/mastra' && needs.check-changes.outputs.agent-builder-changed == 'true' }}
runs-on: ubuntu-latest
permissions:
contents: read
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
TURBO_CACHE: remote:r
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event.workflow_run.head_sha }}
- name: Setup pnpm and Node.js
uses: ./.github/actions/setup-pnpm-node
- name: Build dependencies
run: pnpm turbo build --filter "@mastra/agent-builder^..." --filter "./stores/*"
- name: Run Agent Builder unit tests
run: pnpm --filter "@mastra/agent-builder" test
env:
NODE_OPTIONS: '--max_old_space_size=8096'
- name: Install integration test dependencies
run: pnpm install --ignore-workspace
working-directory: packages/agent-builder/integration-tests
- name: Run Agent Builder integration tests
run: pnpm test
working-directory: packages/agent-builder/integration-tests
env:
NODE_OPTIONS: '--max_old_space_size=8096'
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
test-success:
needs: [check-changes, test]
if: ${{ always() && needs.check-changes.outputs.agent-builder-changed == 'true' && needs.test.result == 'success' }}
runs-on: ubuntu-latest
permissions:
statuses: write
steps:
- uses: actions/checkout@v5
- name: Set success status for completed tests
uses: ./.github/workflows/shared-actions/set-pr-status
with:
status: 'success'
context: 'Agent Builder Tests'
description: 'All agent builder tests passed'
sha: ${{ github.event.workflow_run.head_sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
target_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
test-failure:
needs: [check-changes, test]
if: ${{ always() && needs.check-changes.outputs.agent-builder-changed == 'true' && needs.test.result == 'failure' }}
runs-on: ubuntu-latest
permissions:
statuses: write
steps:
- uses: actions/checkout@v5
- name: Set failure status for failed tests
uses: ./.github/workflows/shared-actions/set-pr-status
with:
status: 'failure'
context: 'Agent Builder Tests'
description: 'Agent builder tests failed'
sha: ${{ github.event.workflow_run.head_sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
target_url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}