Reorder ATVM status output and standardize push reminders

This commit is contained in:
2026-03-27 11:57:19 -04:00
parent 4b04f9b49d
commit c60542e0e5
5 changed files with 36 additions and 27 deletions

View File

@@ -213,11 +213,12 @@ When asked for one VM or a VM set:
## Status Reporting Format ## Status Reporting Format
When the operator asks for the status of an ATVM automation run, report in this order: When the operator asks for the status of an ATVM automation run, report in this order:
1. Heading/title using the run `build_name`. 1. Heading/title using the run `build_name`.
2. `COVERAGE:` section describing what the run was intended to cover, excluding the target-host list. 2. `SUMMARY:` section with finished, passed, failed, and skipped counts.
3. `TEST FLOW:` section describing the template-specific numbered run flow for the test. 3. `HOSTS:` section with the machine rows.
4. Completed machines with machine name first and status second for each machine. 4. `TIMING:` section with start, end, total, quickest, longest, and average.
5. Notes. 5. `COVERAGE:` section describing what the run was intended to cover, excluding the target-host list.
6. Skipped machines with reason. 6. `TEST FLOW:` section describing the template-specific numbered run flow for the test.
7. `NOTES:` section for broader context and anomalies.
7. Remaining machines still to run. 7. Remaining machines still to run.
8. Summary counts for finished, passed, failed, and skipped machines. 8. Summary counts for finished, passed, failed, and skipped machines.
9. Timing details: 9. Timing details:
@@ -233,6 +234,7 @@ Status-report expectations:
- Use the same display layout for every ATVM automation status response regardless of test type (`e2e`, `systemOS`, `reboot`, `migrateops`, and others). - Use the same display layout for every ATVM automation status response regardless of test type (`e2e`, `systemOS`, `reboot`, `migrateops`, and others).
- Use `/home/aw/code/cds/atvm/docs/automation/status-template.md` as the default template for both local status output and Mattermost status posts. - Use `/home/aw/code/cds/atvm/docs/automation/status-template.md` as the default template for both local status output and Mattermost status posts.
- The default ATVM status template uses flat bullet-list sections for `COVERAGE:` and `TEST FLOW:`, Markdown tables for `SUMMARY:`, `HOSTS:`, and `TIMING:`, and uses `NOTES:` for flat operator-facing notes. - The default ATVM status template uses flat bullet-list sections for `COVERAGE:` and `TEST FLOW:`, Markdown tables for `SUMMARY:`, `HOSTS:`, and `TIMING:`, and uses `NOTES:` for flat operator-facing notes.
- Order the status sections as `SUMMARY:`, `HOSTS:`, `TIMING:`, `COVERAGE:`, `TEST FLOW:`, then `NOTES:`.
- The `HOSTS:` table includes `Host`, `Kernel`, `Status`, and `Detail` columns in that order. - The `HOSTS:` table includes `Host`, `Kernel`, `Status`, and `Detail` columns in that order.
- In `COVERAGE:`, describe the template, datastore/config family, migration style, and plugin/integration path, but do not list target hosts there. - In `COVERAGE:`, describe the template, datastore/config family, migration style, and plugin/integration path, but do not list target hosts there.
- In `TEST FLOW:`, show the template-specific numbered run flow once for the whole test, not per host. - In `TEST FLOW:`, show the template-specific numbered run flow once for the whole test, not per host.

View File

@@ -252,3 +252,9 @@ This file stores run-specific examples only when a run produced a new learning r
- Action for future runs: - Action for future runs:
- For non-categorized runs, post only the parent run status and do not also post the single synthetic subrun. - For non-categorized runs, post only the parent run status and do not also post the single synthetic subrun.
- Keep the static `cmc-e2e` watcher flow aligned with the current 22-step ATVM E2E sequence. - Keep the static `cmc-e2e` watcher flow aligned with the current 22-step ATVM E2E sequence.
## Run Learning: 2026-03-27 (Use summary-first status layout for ATVM run results)
- Observed requirement:
- The operator wants ATVM run results ordered as `SUMMARY:`, `HOSTS:`, `TIMING:`, `COVERAGE:`, `TEST FLOW:`, then `NOTES:`.
- Action for future runs:
- Render ATVM status output in that section order for both local output and Mattermost posts.

View File

@@ -10,16 +10,6 @@ Use this as the default ATVM automation run-status template for:
## ATVM Run Status ## ATVM Run Status
### <build_name> ### <build_name>
**COVERAGE:**
- template: `<template-name>`
- datastore/config family: `<config family>`
- migration style: `<high-level test style>`
- integration/plugin path: `<integration/plugin>`
- scope of this run: `<batch or run scope>`
**TEST FLOW:**
- <template-specific numbered steps>
**SUMMARY:** **SUMMARY:**
| Metric | Value | | Metric | Value |
@@ -49,13 +39,23 @@ Use this as the default ATVM automation run-status template for:
| longest | <host> - <runtime> or n/a | | longest | <host> - <runtime> or n/a |
| average | <runtime> or n/a | | average | <runtime> or n/a |
**COVERAGE:**
- template: `<template-name>`
- datastore/config family: `<config family>`
- migration style: `<high-level test style>`
- integration/plugin path: `<integration/plugin>`
- scope of this run: `<batch or run scope>`
**TEST FLOW:**
- <template-specific numbered steps>
**NOTES:** **NOTES:**
- <note> - <note>
- <note> - <note>
``` ```
## Rules ## Rules
- Keep `COVERAGE:`, `TEST FLOW:`, `SUMMARY:`, `HOSTS:`, `TIMING:`, and `NOTES:` in that order. - Keep `SUMMARY:`, `HOSTS:`, `TIMING:`, `COVERAGE:`, `TEST FLOW:`, and `NOTES:` in that order.
- Use the title format: - Use the title format:
- `## ATVM Run Status` - `## ATVM Run Status`
- `### <build_name>` - `### <build_name>`

View File

@@ -623,16 +623,6 @@ def build_status_markdown(
"## ATVM Run Status", "## ATVM Run Status",
f"### {build_name}", f"### {build_name}",
"", "",
"**COVERAGE:**",
f"- template: `{metadata['template']}`",
f"- datastore/config family: `{metadata['config_family']}`",
f"- migration style: {metadata['migration_style']}",
f"- integration/plugin path: `{metadata['integration_plugin']}`",
f"- scope of this run: {metadata['scope_description']}",
"",
"**TEST FLOW:**",
*test_flow_lines,
"",
"**SUMMARY:**", "**SUMMARY:**",
"", "",
"| Metric | Value |", "| Metric | Value |",
@@ -657,6 +647,16 @@ def build_status_markdown(
f"| longest | {f'{longest.host} - {format_duration(longest.duration_seconds)}' if longest else 'n/a'} |", f"| longest | {f'{longest.host} - {format_duration(longest.duration_seconds)}' if longest else 'n/a'} |",
f"| average | {format_duration(average) if average is not None else 'n/a'} |", f"| average | {format_duration(average) if average is not None else 'n/a'} |",
"", "",
"**COVERAGE:**",
f"- template: `{metadata['template']}`",
f"- datastore/config family: `{metadata['config_family']}`",
f"- migration style: {metadata['migration_style']}",
f"- integration/plugin path: `{metadata['integration_plugin']}`",
f"- scope of this run: {metadata['scope_description']}",
"",
"**TEST FLOW:**",
*test_flow_lines,
"",
"**NOTES:**", "**NOTES:**",
notes_block, notes_block,
] ]

View File

@@ -37,7 +37,8 @@ This file records repo-specific git workflow preferences for `/home/aw/code/cds`
- If `git commit` did not actually create a commit, report that clearly and leave the changes as uncommitted. - If `git commit` did not actually create a commit, report that clearly and leave the changes as uncommitted.
## Push Requests ## Push Requests
- When the user asks to push, use `git push -u origin main` by default unless the user explicitly asks for a different remote or branch. - When the user asks to push, show `git push origin main` by default unless the user explicitly asks for a different remote or branch.
- When reminding the user about the push command after a commit proposal or completed commit, display `git push origin main` instead of `git push`.
- Do not execute `git push -u origin main` or any other git push command from the assistant when credentials or an SSH key passphrase might be required. - Do not execute `git push -u origin main` or any other git push command from the assistant when credentials or an SSH key passphrase might be required.
- Instead, show the exact push command and tell the user to run it directly in the terminal. - Instead, show the exact push command and tell the user to run it directly in the terminal.
- Do not accept passwords or passphrases through chat for git operations. - Do not accept passwords or passphrases through chat for git operations.