test-monitor-workflow
This document guides the agent through the task of monitoring nightly acceptance test runs.
Overview
The test-monitor workflow provides a non-destructive monitoring lifecycle that tracks nightly acceptance test execution, identifies persistent failures across a 7-day window, correlates failing tests with open GitHub issues, retrieves debug logs, and outputs a comprehensive Markdown monitoring report.
Available Skills Used in This Workflow
fetch-nightly-results (.agents/skills/fetch-nightly-results/SKILL.md): Downloads nightly test status JSON files for Beta and GA providers from GCS (gs://nightly-test-data/test-metadata/).
automate-test-triage (.agents/skills/automate-test-triage/SKILL.md): Triages 7-day failure trends, matches open GitHub test-failure issues, sanitizes dynamic error tokens for provider comparison, and outputs reports.
Execution Steps
1. Fetch Test Results
- Execute the
fetch-nightly-results skill to retrieve test status JSON files for both GA and Beta providers from Google Cloud Storage (gs://nightly-test-data/test-metadata/) for the latest available run and past 7 days using gcloud storage cat (if GCS authentication or permission fails, verify gcloud auth login and roles/storage.objectViewer access).
2. Triage & Aggregate Failure Trends
- Execute the
automate-test-triage skill by running python3 .agents/skills/automate-test-triage/scripts/triage.py from the root workspace (or pass --date YYYY-MM-DD to specify a target end date for the 7-day window).
- Group the target date's latest run failures by error signature and flag High-Impact errors based on:
- 🚨 Critical Severity: Provider panic/crash (
panic:, runtime error:, SIGSEGV) or API enablement errors in CI test environment projects, prioritized at the top of Section 1 regardless of test count.
- ⚠️ High Volume: Error signatures affecting $\ge 3$ tests in the latest run.
- Separate non-actionable errors requiring human intervention (Quota / Rate Limit / Stockout, Internal Error / Error Code 13, Tenant Project Creation) into Section 2.
- Filter for persistent actionable test failures (failing in latest run AND $\ge 4$ out of the past 7 days).
3. Cross-Reference GitHub Issues
- Fetch open issues labelled
test-failure from hashicorp/terraform-provider-google using gh issue list.
- Match test names against issue titles to correlate persistent failures with existing open tracking tickets.
4. Categorize Root Causes & Analyze Errors
- Extract
error_message and log_link directly from test-metadata entries.
- Analyze API error payloads and debug logs to categorize the failure domain (e.g., Provider Panic, Quota Exceeded, API Permission / IAM, Model Availability, State Mismatch, Flakiness).
5. Generate Monitoring Report
- Save the final Markdown report to
tmp/test-status/test-report-<date>.md (e.g., tmp/test-status/test-report-2026-07-28.md).
- Present the executive summary and 4 report sections (where every section table includes clickable GCS debug log links
[Log](url), expanded 500-character error summaries, and links to Section 4) to the user: Section 1 (High-Impact Actionable Errors: Panics & API Enablement in Test Env, High Volume), Section 2 (Test Failures Requiring Human Action), Section 3 (Persistent Actionable Failures Grouped by Error Signature), and Section 4 (Detailed Test Failures Grouped by Service Package, showing all latest-run failures with failed out of total tests, percentages, and a Human Action Required? column).
Boundaries & Guardrails
- Monitoring Only: Do NOT modify source code or template files in
magic-modules.
- No Code Fixes / PRs: Do NOT create fix branches or attempt to open pull requests.
1---2name: test-monitor-workflow3description: Workflow for fetching, triaging, analyzing, and reporting on nightly acceptance test results across Beta and GA Google Cloud Terraform providers.4---56# `test-monitor-workflow`78This document guides the agent through the task of monitoring nightly acceptance test runs.910## Overview1112The `test-monitor` workflow provides a non-destructive monitoring lifecycle that tracks nightly acceptance test execution, identifies persistent failures across a 7-day window, correlates failing tests with open GitHub issues, retrieves debug logs, and outputs a comprehensive Markdown monitoring report.1314## Available Skills Used in This Workflow1516* **`fetch-nightly-results`** (`.agents/skills/fetch-nightly-results/SKILL.md`): Downloads nightly test status JSON files for Beta and GA providers from GCS (`gs://nightly-test-data/test-metadata/`).17* **`automate-test-triage`** (`.agents/skills/automate-test-triage/SKILL.md`): Triages 7-day failure trends, matches open GitHub `test-failure` issues, sanitizes dynamic error tokens for provider comparison, and outputs reports.1819## Execution Steps2021### 1. Fetch Test Results22* Execute the `fetch-nightly-results` skill to retrieve test status JSON files for both GA and Beta providers from Google Cloud Storage (`gs://nightly-test-data/test-metadata/`) for the latest available run and past 7 days using `gcloud storage cat` (if GCS authentication or permission fails, verify `gcloud auth login` and `roles/storage.objectViewer` access).2324### 2. Triage & Aggregate Failure Trends25* Execute the `automate-test-triage` skill by running `python3 .agents/skills/automate-test-triage/scripts/triage.py` from the root workspace (or pass `--date YYYY-MM-DD` to specify a target end date for the 7-day window).26* Group the target date's latest run failures by error signature and flag High-Impact errors based on:27 1. 🚨 **Critical Severity**: Provider panic/crash (`panic:`, `runtime error:`, `SIGSEGV`) or API enablement errors in CI test environment projects, prioritized at the top of Section 1 regardless of test count.28 2. ⚠️ **High Volume**: Error signatures affecting $\ge 3$ tests in the latest run.29* Separate non-actionable errors requiring human intervention (Quota / Rate Limit / Stockout, Internal Error / Error Code 13, Tenant Project Creation) into Section 2.30* Filter for persistent actionable test failures (failing in latest run AND $\ge 4$ out of the past 7 days).3132### 3. Cross-Reference GitHub Issues33* Fetch open issues labelled `test-failure` from `hashicorp/terraform-provider-google` using `gh issue list`.34* Match test names against issue titles to correlate persistent failures with existing open tracking tickets.3536### 4. Categorize Root Causes & Analyze Errors37* Extract `error_message` and `log_link` directly from `test-metadata` entries.38* Analyze API error payloads and debug logs to categorize the failure domain (e.g., Provider Panic, Quota Exceeded, API Permission / IAM, Model Availability, State Mismatch, Flakiness).3940### 5. Generate Monitoring Report41* Save the final Markdown report to `tmp/test-status/test-report-<date>.md` (e.g., `tmp/test-status/test-report-2026-07-28.md`).42* Present the executive summary and 4 report sections (where every section table includes clickable GCS debug log links `[Log](url)`, expanded 500-character error summaries, and links to Section 4) to the user: Section 1 (High-Impact Actionable Errors: Panics & API Enablement in Test Env, High Volume), Section 2 (Test Failures Requiring Human Action), Section 3 (Persistent Actionable Failures Grouped by Error Signature), and Section 4 (Detailed Test Failures Grouped by Service Package, showing all latest-run failures with failed out of total tests, percentages, and a Human Action Required? column).4344---4546## Boundaries & Guardrails47* **Monitoring Only:** Do NOT modify source code or template files in `magic-modules`.48* **No Code Fixes / PRs:** Do NOT create fix branches or attempt to open pull requests.