Tool Builder Tests #25226
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |