Skip to content

Agent Builder Tests #18271

Agent Builder Tests

Agent Builder Tests #18271

name: Agent Builder Tests
on:
workflow_run:
workflows: ['Quality assurance']
types:
- completed
concurrency:
group: ${{ github.workflow }}-${{ github.event.workflow_run.head_sha }}
cancel-in-progress: true
jobs:
check-changes:
if: ${{ github.repository == 'mastra-ai/mastra' }}
runs-on: ubuntu-latest
outputs:
changed: ${{ steps.changes.outputs.changed }}
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: Setup pnpm and Node.js
uses: ./.github/actions/setup-pnpm-node
with:
install-dependencies: 'false'
- name: Check for agent-builder package changes using Turborepo
id: changes
uses: ./.github/actions/turbo-changed
with:
packages: '@mastra/agent-builder'
tasks: 'build,test'
base-ref: 'origin/main'
skip-tests:
needs: check-changes
if: needs.check-changes.outputs.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.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/*"
env:
NODE_OPTIONS: '--max_old_space_size=6144'
GITHUB_REF_NAME: ${{ github.event.workflow_run.head_branch }}
- name: Run Agent Builder unit tests
run: pnpm --filter "@mastra/agent-builder" test
env:
NODE_OPTIONS: '--max_old_space_size=6144'
GITHUB_REF_NAME: ${{ github.event.workflow_run.head_branch }}
- 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=6144'
GITHUB_REF_NAME: ${{ github.event.workflow_run.head_branch }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
test-success:
needs: [check-changes, test]
if: ${{ always() && needs.check-changes.outputs.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.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 }}