Smoke Gemini #731
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
| --- | |
| description: Smoke test workflow that validates Gemini engine functionality twice daily | |
| on: | |
| schedule: every 12h | |
| workflow_dispatch: | |
| pull_request: | |
| types: [labeled] | |
| names: ["water"] | |
| reaction: "rocket" | |
| status-comment: true | |
| permissions: | |
| contents: read | |
| issues: read | |
| pull-requests: read | |
| name: Smoke Gemini | |
| engine: | |
| id: gemini | |
| strict: true | |
| imports: | |
| - shared/gh.md | |
| - shared/reporting.md | |
| network: | |
| allowed: | |
| - defaults | |
| - github | |
| tools: | |
| cache-memory: true | |
| github: | |
| toolsets: [repos, pull_requests] | |
| edit: | |
| bash: | |
| - "*" | |
| web-fetch: | |
| safe-outputs: | |
| allowed-domains: [default-safe-outputs] | |
| add-comment: | |
| hide-older-comments: true | |
| max: 2 | |
| create-issue: | |
| expires: 2h | |
| close-older-issues: true | |
| close-older-key: "smoke-gemini" | |
| labels: [automation, testing] | |
| add-labels: | |
| allowed: [smoke-gemini] | |
| messages: | |
| footer: "> ✨ *[{workflow_name}]({run_url}) — Powered by Gemini*{effective_tokens_suffix}{history_link}" | |
| run-started: "✨ Gemini awakens... [{workflow_name}]({run_url}) begins its journey on this {event_type}..." | |
| run-success: "🚀 [{workflow_name}]({run_url}) **MISSION COMPLETE!** Gemini has spoken. ✨" | |
| run-failure: "⚠️ [{workflow_name}]({run_url}) {status}. Gemini encountered unexpected challenges..." | |
| timeout-minutes: 10 | |
| --- | |
| # Smoke Test: Gemini Engine Validation | |
| **CRITICAL EFFICIENCY REQUIREMENTS:** | |
| - Keep ALL outputs extremely short and concise. Use single-line responses. | |
| - NO verbose explanations or unnecessary context. | |
| - Minimize file reading - only read what is absolutely necessary for the task. | |
| ## Test Requirements | |
| 1. **GitHub MCP Testing**: Use GitHub MCP tools to fetch details of exactly 2 merged pull requests from ${{ github.repository }} (title and number only) | |
| 2. **Web Fetch Testing**: Use the web-fetch MCP tool to fetch https://github.com and verify the response contains "GitHub" (do NOT use bash or playwright for this test - use the web-fetch MCP tool directly) | |
| 3. **File Writing Testing**: Create a test file `/tmp/gh-aw/agent/smoke-test-gemini-${{ github.run_id }}.txt` with content "Smoke test passed for Gemini at $(date)" (create the directory if it doesn't exist) | |
| 4. **Bash Tool Testing**: Execute bash commands to verify file creation was successful (use `cat` to read the file back) | |
| 5. **Build gh-aw**: Run `GOCACHE=/tmp/go-cache GOMODCACHE=/tmp/go-mod make build` to verify the agent can successfully build the gh-aw project. If the command fails, mark this test as ❌ and report the failure. | |
| ## Output | |
| **ALWAYS create an issue** with a summary of the smoke test run: | |
| - Title: "Smoke Test: Gemini - ${{ github.run_id }}" | |
| - Body should include: | |
| - Test results (✅ or ❌ for each test) | |
| - Overall status: PASS or FAIL | |
| - Run URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| - Timestamp | |
| **Only if this workflow was triggered by a pull_request event**: Use the `add_comment` tool to add a **very brief** comment (max 5-10 lines) to the triggering pull request (omit the `item_number` parameter to auto-target the triggering PR) with: | |
| - ✅ or ❌ for each test result | |
| - Overall status: PASS or FAIL | |
| If all tests pass and this workflow was triggered by a pull_request event, use the `add_labels` safe-output tool to add the label `smoke-gemini` to the pull request (omit the `item_number` parameter to auto-target the triggering PR). | |
| **Important**: If no action is needed after completing your analysis, you **MUST** call the `noop` safe-output tool with a brief explanation. Failing to call any safe-output tool is the most common cause of safe-output workflow failures. | |
| ```json | |
| {"noop": {"message": "No action needed: [brief explanation of what was analyzed and why]"}} | |
| ``` |