Skip to content

[QA] Add Kubernetes Connections report; split mesheryctl results dirs - #80

Merged
marblom007 merged 5 commits into
masterfrom
fm/conn-qa-reporting
Aug 2, 2026
Merged

marblom007 merged 5 commits into
masterfrom
fm/conn-qa-reporting

Conversation

@marblom007

@marblom007 marblom007 commented Aug 2, 2026 •

Copy link
Copy Markdown
Member

What & why

Adds a dedicated Kubernetes Connections report to the QA dashboard and fixes a
results-clobber bug in the mesheryctl pipeline. None of the existing reports focus on
Kubernetes Connections; this gives connection behavior its own cross-client lens.

Changes

1. allurerc.mjs - new "Kubernetes Connections" report (filtered view)

A new @allurereport/plugin-awesome block whose filter selects results labelled
epic == "Kubernetes Connections", falling back to componentUnderTest matching
Kubernetes for any result tagged before the epic convention. Grouped by client
(UI vs CLI), then suite / subSuite.

  • It keys on epic, not project, so it aggregates connection tests from both
    the Meshery (UI, project=Meshery) and Mesheryctl (CLI, project=mesheryctl) result
    pools - and connection tests still appear in the Meshery / Mesheryctl reports. The
    Connections report is an additional view, not a relocation.
  • groupBy: ["client","suite","subSuite"] is safe on the custom client label:
    preciseTreeLabels (plugin-api) keeps only label names present on at least one result
    and drops absent ones, so results missing client fall back to suite grouping.

Connection tests are tagged at their source (UI Playwright specs + CLI converters, in the
companion meshery/meshery PR) with epic="Kubernetes Connections", componentUnderTest,
testId (TC-<n>), and client (UI|CLI), sourced from the Meshery Test Plan.

2. Fix the mesheryctl-results/ clobber (qa side)

The BATS e2e feeder (mesheryctl-e2e.yaml) and the Go unit feeder (go-testing-ci.yml)
both synced into mesheryctl-results/ via results-sync, which rm -rfs its target - so
whichever workflow committed last wiped the other's results. The Mesheryctl report
therefore never showed BATS + unit together, and CLI connection results (BATS) could be
erased by a later unit sync.

  • Add dedicated mesheryctl-bats-results-sync -> mesheryctl-bats-results/ and
    mesheryctl-unit-results-sync -> mesheryctl-unit-results/ targets; both are merged at
    report-build.
  • Keep mesheryctl-results-sync as a deprecated back-compat alias so this change is
    order-independent with the meshery-side workflow change (neither PR breaks master if it
    merges first).
  • The meshery-side of this fix (pointing each workflow at its new target) is in the
    companion meshery/meshery PR.

3. publish-allure-report.yml + README.md

  • Pages workflow paths trigger now includes the two new results dirs.
  • README: new "Published reports" table (incl. Kubernetes Connections), results-dir table,
    and sparse-clone exclusion examples updated for the new dirs.

Verification

Ran make report-build locally against synthetic results (allure 3 via npm ci):

  • Connections report: exactly 2 tests - a UI test (connections.spec.ts) under a UI
    group and a CLI test (007-connection) under a CLI group; the non-connection test was
    excluded. Confirms the filter + client grouping.
  • Meshery report: 2 tests (non-connection + the UI connection test) - connection test
    still present in its project report.
  • Mesheryctl report: 1 test (the CLI connection test) - still present in its project report.
  • allurerc.mjs loads cleanly; filter returns true for epic, true for componentUnderTest
    fallback, false for a non-connection result.

Notes / follow-ups

  • categories.json (connection failure triage) was intentionally not added: Allure 3
    applies categories report-wide (context.categories), so connection-specific categories
    would land on every report. Worth a separate, deliberate change owned across report owners.
  • The report auto-publishes to https://qa.meshery.io via the existing Pages workflow once
    allurerc.mjs merges.
  • The legacy mesheryctl-results/ directory of already-committed data is left in place
    (still merged at report-build); it can be pruned in a follow-up once both new dirs are
    populated by CI.

Summary by CodeRabbit

  • New Features

    • Added a combined Allure report for Kubernetes Connections tests across UI and CLI clients.
    • Improved report organization by client and test suite, with enhanced filters and metadata.
    • Added separate BATS and unit-test result synchronization and report inclusion.
  • Bug Fixes

    • Preserved existing test results when configured source paths are missing or invalid.
    • Updated report publishing for changes in both result directories.
  • Documentation

    • Updated published-report guidance, metadata behavior, and migration instructions for the deprecated results directory.

Add a dedicated 'Kubernetes Connections' Allure report as a filtered view in
allurerc.mjs: an @allurereport/plugin-awesome block whose filter selects results
labelled epic="Kubernetes Connections" (falling back to componentUnderTest
matching Kubernetes for results tagged before the epic convention), grouped by
client (UI vs CLI) then suite/subSuite. It aggregates connection tests from both
the Meshery (UI) and mesheryctl (CLI) pools without removing them from those
reports.

Fix the mesheryctl-results clobber (qa side): the BATS e2e and Go unit feeders
both synced into mesheryctl-results/ via results-sync, which wipes its target, so
whichever committed last erased the other. Add dedicated mesheryctl-bats-results-
sync and mesheryctl-unit-results-sync targets writing to distinct dirs, merged at
report-build; keep the legacy mesheryctl-results-sync as a back-compat alias so
the change is order-independent with the meshery-side workflow change.

Update the Pages workflow paths trigger and the README (report list + results-dir
table + sparse-clone examples) for the new dirs.

Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 2, 2026 04:15
@welcome

welcome Bot commented Aug 2, 2026

Copy link
Copy Markdown

Yay, your first pull request! 👍 A contributor will be by to give feedback soon. In the meantime, you can find updates in the #github-notifications channel in the community Slack.
Be sure to double-check that you have signed your commits. Here are instructions for making signing an implicit activity while performing a commit.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a Kubernetes Connections-focused Allure report view and prevents mesheryctl result sets from clobbering each other by splitting CLI results into dedicated directories.

Changes:

  • Added a new “Kubernetes Connections” report in Allure config, filtered by epic with a componentUnderTest fallback and grouped by client.
  • Split mesheryctl results sync into separate BATS and unit-test targets, merging both during report-build while keeping the old sync target as a deprecated alias.
  • Updated Pages workflow triggers and README documentation to reflect the new report and result directories.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
allurerc.mjs Adds the Kubernetes Connections report and supporting label filter/grouping helpers
README.md Documents published reports and new/split results directories
Makefile Introduces split mesheryctl sync targets and merges new dirs at report build time
.github/workflows/publish-allure-report.yml Triggers Pages publish when new results directories change

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread allurerc.mjs
singleFile: false,
reportLanguage: "en",
open: false,
logo: "https://raw.githubusercontent.com/meshery-extensions/qa/refs/heads/master/.github/assets/images/meshery/icon-only/meshery-light-icon.svg",

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving as-is here: every existing plugin in allurerc.mjs (meshery, mesheryctl, kanvas, layer5Cloud) uses this same refs/heads/master logo URL, so pinning only the new plugin to a commit SHA would diverge from the established convention. Converting all logos to pinned SHAs/tags is a worthwhile but separate, repo-wide change.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving as-is intentionally: every plugin in allurerc.mjs uses this same refs/heads/master logo URL, so pinning only the new plugin to a SHA would diverge from the file's convention. Converting all logos to pinned refs is a worthwhile separate, repo-wide change.

Comment thread allurerc.mjs Outdated
Comment on lines +22 to +24
// componentUnderTest values that denote Kubernetes connection behavior. Used as
// a fallback selector when a result predates the epic label.
const CONNECTION_COMPONENTS = /kubernetes/i;

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renamed CONNECTION_COMPONENTS to CONNECTION_COMPONENT_RE so the RegExp type is obvious at the use site. No behavior change.

Comment thread Makefile
Comment on lines +68 to +75
mesheryctl-bats-results-sync:
@echo "Syncing mesheryctl BATS e2e Test Results..."
$(call results-sync,MESHERYCTL_BATS_RESULTS_PATH,mesheryctl-bats-results)

## Sync mesheryctl Go unit Test Results
mesheryctl-unit-results-sync:
@echo "Syncing mesheryctl Go unit Test Results..."
$(call results-sync,MESHERYCTL_UNIT_RESULTS_PATH,mesheryctl-unit-results)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed - results-sync (and results-sync-path) now rm -rf the destination only after the source var is confirmed set and present, so a misconfigured or empty path var can no longer wipe committed results before the guard runs. This closes the data-loss window for every sync target, not just the new ones.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is addressed by the macro fix in the same commit: rm -rf/mkdir now sit inside the [ -n ... ] && [ -d ... ] guard, so an unset or missing path var no longer wipes the destination - it logs and leaves the committed results intact. That is the safe-skip behavior already used by the other named sync targets, so I kept it rather than adding a separate exit-1 per target. project-results-sync keeps its own exit-1 because it is the generic entrypoint.

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@marblom007, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 40 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b6ae8857-e5e0-4e49-b54b-dfddfc0f3ba0

📥 Commits

Reviewing files that changed from the base of the PR and between db7d81c and 471e287.

📒 Files selected for processing (1)
  • Makefile
📝 Walkthrough

Walkthrough

The PR separates Mesheryctl BATS and Go unit-test results, preserves results when sources are invalid, updates Allure publishing triggers and documentation, and adds a filtered Kubernetes Connections report grouped by client and suite.

Changes

Allure publishing

Layer / File(s) Summary
Separate Mesheryctl result ingestion
.github/workflows/publish-allure-report.yml, Makefile
Dedicated targets sync BATS and Go unit-test results into separate directories. Invalid sources no longer delete existing results. Report builds and workflow triggers use both directories.
Kubernetes Connections report
allurerc.mjs
Allure selects Kubernetes Connections results by epic, with componentUnderTest fallback when no epic exists. The report groups results by client, suite, and sub-suite.
Published report and clone guidance
README.md
The README documents published reports, filters, result directories, and sparse-checkout exclusions.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ResultDirectories
  participant AllureConfig
  participant ConnectionsReport
  ResultDirectories->>AllureConfig: Provide split BATS and unit-test results
  AllureConfig->>ConnectionsReport: Filter Kubernetes Connections results
  ConnectionsReport->>ConnectionsReport: Group results by client, suite, and sub-suite
Loading

Possibly related PRs

  • meshery/qa#79: Updates README sparse-clone guidance for separate BATS and unit-test result directories.

Suggested reviewers: ianrwhitney

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the two primary changes: the Kubernetes Connections report and split Mesheryctl result directories.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fm/conn-qa-reporting

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@allurerc.mjs`:
- Around line 26-33: Update isConnectionBehavior so the componentUnderTest
fallback is evaluated only when no epic label exists; results with a nonmatching
epic must be rejected. Add coverage for matching epic labels, legacy results
without an epic, and results with a different epic value.

In `@Makefile`:
- Around line 107-108: Update the report-build commands around the mesheryctl
result copies so the legacy mesheryctl-results artifacts are removed or isolated
from allure-results inputs; only the current split outputs from
mesheryctl-bats-results and mesheryctl-unit-results should be included,
preventing stale tracked results from being merged.

In `@README.md`:
- Around line 93-101: Update the Kubernetes Connections documentation in the
report table and the explanatory paragraph to include the legacy selection
fallback: older results without the epic label are included when
componentUnderTest matches Kubernetes. Keep the existing epic-based criterion
and tagged-test behavior unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0739f9d7-2c2e-44ff-9145-7cf0717d2cda

📥 Commits

Reviewing files that changed from the base of the PR and between 695254b and 8f66ff6.

📒 Files selected for processing (4)
  • .github/workflows/publish-allure-report.yml
  • Makefile
  • README.md
  • allurerc.mjs

Comment thread allurerc.mjs Outdated
Comment thread Makefile
Comment thread README.md Outdated
… drop stale legacy dir

- allurerc.mjs: the Connections filter's componentUnderTest fallback now applies
  ONLY when a result has no epic label at all. Previously a result with a
  different epic (e.g. epic="Other") plus componentUnderTest=Kubernetes was
  wrongly pulled into the report. Verified: matching epic, legacy no-epic
  fallback, and different-epic-excluded cases all behave correctly.
- Makefile results-sync/results-sync-path: only rm -rf the destination after the
  source var is confirmed set and present. Wiping first meant a misconfigured or
  empty source var destroyed the committed destination results before the guard.
- Makefile report-build: stop copying the frozen legacy mesheryctl-results/ dir;
  merging it with the split dirs would mix stale pre-split results with current
  ones. The split dirs repopulate on the next CI run of each feeder.
- README: document the no-epic componentUnderTest fallback (and that a different
  epic is not pulled in by the component fallback).

Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
@marblom007

Copy link
Copy Markdown
Member Author

@coderabbitai review

@marblom007

Copy link
Copy Markdown
Member Author

@copilot review

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copilot AI commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Review of the two commits (8f66ff6 and e7f3e1a):

allurerc.mjs

  • isConnectionBehavior correctly guards the componentUnderTest fallback: it now checks hasEpic first and returns only when epic === CONNECTIONS_EPIC, so a result that has a different epic cannot be pulled in via the component fallback. The guard is correct.
  • The connections plugin block is well-scoped: filter, groupBy: ["client","suite","subSuite"], and the label are all consistent with the PR description and verified locally.
  • CONNECTION_COMPONENTS naming (RegExp named like a collection) was raised in review but is a style-only concern deferred to a follow-up; the type is clear from the /kubernetes/i literal.

Makefile

  • results-sync and results-sync-path macros: rm -rf and mkdir -p now sit inside the [ -n ... ] && [ -d ... ] guard, not before it. This closes the data-loss window for all sync targets (not just the new split ones).
  • mesheryctl-bats-results-sync / mesheryctl-unit-results-sync follow the same pattern as existing targets and correctly invoke results-sync with their respective path variables.
  • report-build intentionally omits the frozen mesheryctl-results/ copy; the comment explaining why is clear.
  • Deprecated mesheryctl-results-sync alias is preserved for back-compat — correct ordering-independent approach.

publish-allure-report.yml

  • Both new result directories (mesheryctl-bats-results/**, mesheryctl-unit-results/**) are correctly added to the paths trigger.

README.md

  • Published reports table, results-dir table, and sparse-clone exclusion examples are all consistent with the code changes, including the documented fallback behaviour for the Connections report.

No logic errors, security issues, or data-loss risks found. CI checks (DCO, triage) are passing. LGTM.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Makefile`:
- Around line 22-46: Update both results-sync and results-sync-path to copy the
validated source into a temporary sibling directory first, creating the parent
as needed, and only remove and replace the destination after the copy completes
successfully. Preserve the existing source validation and
destination-left-intact behavior when validation or copying fails, and clean up
temporary data on failure.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3baa8dd4-6242-4d67-bc06-112cb206e693

📥 Commits

Reviewing files that changed from the base of the PR and between 8f66ff6 and e7f3e1a.

📒 Files selected for processing (3)
  • Makefile
  • README.md
  • allurerc.mjs
🚧 Files skipped from review as they are similar to previous changes (2)
  • README.md
  • allurerc.mjs

Comment thread Makefile Outdated
The constant is a RegExp; the plural name read like a collection. Rename it so
the type is obvious at the use site. No behavior change.

Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
@marblom007

Copy link
Copy Markdown
Member Author

@coderabbitai review

@marblom007

Copy link
Copy Markdown
Member Author

@copilot review

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copilot AI commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Review of all three commits (8f66ff6, e7f3e1a, 9d7e41):

allurerc.mjs

  • CONNECTION_COMPONENTS → CONNECTION_COMPONENT_RE rename is in place (9d7e41); the /kubernetes/i RegExp type is now self-evident at the call site.
  • isConnectionBehavior logic is correct: hasEpic guard ensures the componentUnderTest fallback fires only for results with no epic label at all, preventing different-epic results from being pulled in.
  • connections plugin block: filter, groupBy: ["client","suite","subSuite"], and the logo are all consistent and correct.

Makefile

  • results-sync / results-sync-path macros: rm -rf / mkdir -p correctly sit inside the guard; destination is left intact when the source var is unset or the path doesn't exist.
  • New split targets (mesheryctl-bats-results-sync, mesheryctl-unit-results-sync) correctly invoke results-sync with their respective path variables.
  • report-build includes both split dirs; frozen legacy mesheryctl-results/ copy is intentionally omitted with an explanatory comment.
  • Deprecated mesheryctl-results-sync alias preserved for back-compat.

publish-allure-report.yml

  • Both new result dirs added to the paths trigger. No other changes needed.

README.md

  • Published-reports table, results-dir table, and sparse-clone exclusion examples are consistent with all code changes.

CI: DCO and triage checks passing. No issues found. LGTM.

…cess

Previously the destination was rm -rf'd before cp completed, so a mid-copy I/O
error, a disappearing source, or an empty glob could delete valid committed
results and leave the destination empty. Copy the validated source into a
temporary sibling dir first (cp -a src/. so it also succeeds on an empty source
without glob expansion), then remove and swap in the destination only after the
copy succeeds; on copy failure the destination is left intact and the target
fails loudly. Applied to both results-sync and results-sync-path.

Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
@marblom007

Copy link
Copy Markdown
Member Author

@coderabbitai review

@marblom007

Copy link
Copy Markdown
Member Author

@copilot review

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Makefile`:
- Line 35: Quote the destination argument in both file-operation commands within
the Makefile sync rule: update the rm and mv uses of $(2) so paths containing
whitespace remain a single path, including the corresponding occurrence at the
other reported location.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a4466ad0-6acf-44cd-8388-39b48ad65528

📥 Commits

Reviewing files that changed from the base of the PR and between 9d7e413 and db7d81c.

📒 Files selected for processing (1)
  • Makefile

Comment thread Makefile Outdated
project-results-sync feeds $(PROJECT)-results into $(2); an unquoted rm -rf/mv
would split a destination containing whitespace into multiple paths. Quote both
uses in results-sync and results-sync-path. Verified with a PROJECT containing a
space: a single correctly-named dir is created, no stray paths.

Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
@marblom007

Copy link
Copy Markdown
Member Author

@coderabbitai review

@marblom007

Copy link
Copy Markdown
Member Author

@copilot review

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copilot AI commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Review of all four commits (8f66ff6, e7f3e1a, 9d7e41, db7d81c):

allurerc.mjs — no changes since last review; still correct.

Makefile (db7d81c — new since last review)

  • The atomic-swap pattern is sound: cp -a src/. tmp/ completes before rm -rf dest; mv tmp dest, so a mid-copy failure, I/O error, or vanishing source can never leave the destination half-deleted.
  • cp -a "src/." (trailing /.) correctly copies directory contents (not the directory itself) and handles an empty source without relying on glob expansion — avoids the unquoted-glob hazard of the previous cp -r src/* dest/.
  • tmp="$(2).tmp.$$$$" (Make $$$$ → shell $$ → PID) produces a per-invocation unique temp name, preventing collisions if targets ever ran concurrently.
  • On copy failure: temp dir is cleaned up and exit 1 fails the target loudly — correct fail-fast behavior.
  • Both results-sync and results-sync-path apply the same pattern consistently.
  • One note: rm -rf $(2) on line 35 and 51 is unquoted (the destination path). If $(2) could ever contain spaces this would word-split, but in practice all destination values are single-word repo-relative paths, so this is not a real risk with the current callers.

publish-allure-report.yml / README.md — unchanged; still consistent.

CI: DCO and triage checks passing. No logic errors or safety issues found. LGTM.

Copilot AI commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Review of all five commits (8f66ff6, e7f3e1a, 9d7e41, db7d81c, 471e287):

allurerc.mjs — unchanged; still correct.

Makefile (471e287 — new since last review)

  • "$(2)" is now quoted in both rm -rf and mv across results-sync and results-sync-path. This closes the word-split hazard noted last round for project-results-sync callers where $(PROJECT)-results could contain whitespace.
  • No other changes; the atomic-swap logic from db7d81c is intact.

publish-allure-report.yml / README.md — unchanged; still consistent.

CI: DCO and triage checks passing. No issues found. LGTM.

@marblom007
marblom007 merged commit f97be76 into master Aug 2, 2026
5 checks passed
@marblom007
marblom007 deleted the fm/conn-qa-reporting branch August 2, 2026 17:10
marblom007 added a commit to meshery/meshery that referenced this pull request Aug 2, 2026
…ontract

Point the two mesheryctl Allure feeders at dedicated qa result dirs so they stop
clobbering each other. The BATS e2e workflow and the Go unit workflow both synced
into qa's mesheryctl-results/ via results-sync, which wipes its target, so whichever
committed last erased the other - and CLI Kubernetes Connection results (BATS) could
be wiped by a later unit sync.

- mesheryctl-e2e.yaml: make mesheryctl-bats-results-sync (MESHERYCTL_BATS_RESULTS_PATH)
- go-testing-ci.yml: make mesheryctl-unit-results-sync (MESHERYCTL_UNIT_RESULTS_PATH)

The matching qa targets/dirs (merged at report-build) are added in meshery/qa#80,
which should merge first; qa keeps the legacy mesheryctl-results-sync as a back-compat
alias so neither side hard-breaks on merge order.

Document the QA dashboard (qa.meshery.io) and the shared Kubernetes Connections
Allure label contract - epic, componentUnderTest, testId (TC-<n>), client - in the
build-and-release contributing docs, so the UI and CLI test lanes tag connection
tests consistently and the dedicated Connections report can filter them.

Signed-off-by: marblom007 <158522975+marblom007@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants