Skip to content

Tool Builder Tests #25236

Tool Builder Tests

Tool Builder Tests #25236

name: Tool 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: 'Tool 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 tool-builder package changes using Turborepo
id: changes
uses: ./.github/actions/turbo-changed
with:
packages: '@mastra/core'
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 tool-builder
uses: ./.github/workflows/shared-actions/set-pr-status
with:
status: 'success'
context: 'Tool Builder Tests'
description: 'Tool-builder packages 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 core
run: pnpm build:core && pnpm build:deployer
env:
NODE_OPTIONS: '--max_old_space_size=6144'
GITHUB_REF_NAME: ${{ github.event.workflow_run.head_branch }}
- name: Run tool-builder test
run: pnpm test:tool-builder
env:
NODE_OPTIONS: '--max_old_space_size=6144'
GITHUB_REF_NAME: ${{ github.event.workflow_run.head_branch }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_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: 'Tool Builder Tests'
description: 'All tool-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: 'Tool Builder Tests'
description: 'Tool-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 }}