Skip to content

сhore(ci): improve e2e nightly report#2245

Open
universal-itengineer wants to merge 12 commits intomainfrom
chore/ci/improve-e2e-nightly-report
Open

сhore(ci): improve e2e nightly report#2245
universal-itengineer wants to merge 12 commits intomainfrom
chore/ci/improve-e2e-nightly-report

Conversation

@universal-itengineer
Copy link
Copy Markdown
Member

@universal-itengineer universal-itengineer commented Apr 20, 2026

Description

Refactor nested E2E reporting in GitHub Actions by replacing inline shell-based report aggregation with reusable Node.js scripts.

The change introduces dedicated report builders for:

  • parsing JUnit XML test results into structured cluster reports;
  • detecting failed pipeline stages and generating fallback reports when test artifacts are missing;
  • rendering a consolidated nested-cluster E2E summary message;
  • publishing the summary and failed-test thread to Loop via API.

The workflows were updated to install Node.js dependencies, execute the new scripts through actions/github-script, and pass structured outputs between reusable and matrix workflows.

Additional tests and linting configuration were added for the new reporting logic.

Why do we need it, and what problem does it solve?

The previous implementation built E2E summaries with large inline bash scripts in workflows. That approach was hard to maintain, hard to test, and fragile when artifacts were missing or when failures happened before the E2E stage.

This change moves the reporting logic into tested JavaScript modules and makes report generation more deterministic and maintainable. It also improves failure handling by preserving stage-level metadata, distinguishing between test failures and cluster setup failures, and supporting missing-artifact scenarios explicitly.

As a result, nested-cluster E2E reporting becomes easier to extend, easier to validate with unit tests, and more reliable for both successful and failed runs.

What is the expected result?

  1. Run the nested E2E workflows for configured storage types.
  2. The reusable pipeline produces a structured e2e_report_<storage>.json report based on JUnit XML data or fallback stage metadata.
  3. The matrix workflow downloads the generated report artifacts and renders a consolidated summary.
  4. The summary message contains:
    • a test results table for clusters with test reports;
    • a separate cluster-failures section for setup-stage or artifact-related failures;
    • a failed-tests thread when testcase-level failures are available.
  5. If Loop credentials are configured, both the main message and the thread reply are sent through the Loop API.

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: ci
type: fix
summary: "Refactor nested E2E report generation into tested Node.js scripts and improve Loop reporting for missing artifacts and stage failures."
impact_level: low

@universal-itengineer universal-itengineer changed the title Chore/ci/improve e2e nightly report сhore(ci): improve e2e nightly report Apr 20, 2026
@universal-itengineer universal-itengineer force-pushed the chore/ci/improve-e2e-nightly-report branch from 5cf8960 to 479344e Compare April 22, 2026 17:01
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
@universal-itengineer universal-itengineer force-pushed the chore/ci/improve-e2e-nightly-report branch from 5497087 to 32d79af Compare April 24, 2026 12:21
@universal-itengineer universal-itengineer added this to the v1.9.0 milestone Apr 24, 2026
@universal-itengineer universal-itengineer marked this pull request as ready for review April 24, 2026 12:28
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant