Skip to main content
Glama

mcp-google-sheets

e2e.yml4.83 kB
name: E2E Tests on: pull_request_target: types: [opened, synchronize, reopened, labeled] branches: - main - gh-actions-test-branch workflow_dispatch: permissions: actions: write contents: read issues: write pull-requests: write concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: check-label: runs-on: ubuntu-latest outputs: should-run-e2e: ${{ steps.check-if-pr-has-label.outputs.run-e2e }} steps: - name: Check if PR exists with ready-for-e2e label for this SHA id: check-if-pr-has-label uses: actions/github-script@v7 with: script: | // Always run on manual workflow dispatch if (context.eventName === 'workflow_dispatch') { core.setOutput('run-e2e', true); return; } let labels = []; if (context.payload.pull_request) { labels = context.payload.pull_request.labels; } else { try { const sha = context.sha; const { data: prs } = await github.rest.repos.listPullRequestsAssociatedWithCommit({ owner: context.repo.owner, repo: context.repo.repo, commit_sha: sha }); if (prs.length === 0) { core.setOutput('run-e2e', false); return; } const pr = prs[0]; labels = pr.labels; } catch (e) { core.setOutput('run-e2e', false); return; } } const labelFound = labels.map(l => l.name).includes('ready-for-e2e'); core.setOutput('run-e2e', labelFound); test-e2e-ee: needs: check-label if: needs.check-label.outputs.should-run-e2e == 'true' uses: ./.github/workflows/tests-e2e-ee.yml test-e2e-ce: needs: check-label if: needs.check-label.outputs.should-run-e2e == 'true' uses: ./.github/workflows/tests-e2e-ce.yml notify-on-completion: needs: [check-label, test-e2e-ce, test-e2e-ee] if: always() && needs.check-label.outputs.should-run-e2e == 'true' runs-on: ubuntu-latest steps: - name: Download all artifacts uses: actions/download-artifact@v4 with: path: ./artifacts pattern: "*" merge-multiple: false - name: Re-upload consolidated artifacts uses: actions/upload-artifact@v4 if: always() with: name: e2e-test-artifacts-all path: ./artifacts/ retention-days: 30 - name: Comment on PR with test results if: always() && github.event_name == 'pull_request_target' uses: actions/github-script@v7 with: script: | // Determine which tests failed const results = { ee: '${{ needs.test-e2e-ee.result }}', ce: '${{ needs.test-e2e-ce.result }}' }; const failed = Object.entries(results).filter(([_, status]) => status === 'failure'); const passed = Object.entries(results).filter(([_, status]) => status === 'success'); const skipped = Object.entries(results).filter(([_, status]) => status === 'skipped'); // Build status summary let summary = "## 🧪 E2E Test Results\n\n"; if (failed.length > 0) { summary += "### ❌ Failed Tests\n"; failed.forEach(([edition, _]) => { summary += `- **${edition.toUpperCase()} Edition**\n`; }); summary += "\n"; } if (passed.length > 0) { summary += "### ✅ Passed Tests\n"; passed.forEach(([edition, _]) => { summary += `- **${edition.toUpperCase()} Edition**\n`; }); summary += "\n"; } if (skipped.length > 0) { summary += "### ⏭️ Skipped Tests\n"; skipped.forEach(([edition, _]) => { summary += `- **${edition.toUpperCase()} Edition**\n`; }); summary += "\n"; } summary += `🤖 Automated E2E test results from [workflow run ${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})`; // Post comment await github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: summary });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server