Skip to content

chore(ci): refactor code structure for improved readability and maint…#6396

Open
guillaumejparis wants to merge 15 commits into
mainfrom
chore/improve_ci
Open

chore(ci): refactor code structure for improved readability and maint…#6396
guillaumejparis wants to merge 15 commits into
mainfrom
chore/improve_ci

Conversation

@guillaumejparis

Copy link
Copy Markdown
Member

…ainability

Proposed changes

Testing Instructions

  1. Step-by-step how to test
  2. Environment or config notes

Related issues

  • Closes #ISSUE-NUMBER

Checklist

  • I consider the submitted work as finished
  • I tested the code for its functionality
  • I wrote test cases for the relevant uses case
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality
  • For bug fix -> I implemented a test that covers the bug

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@github-actions github-actions Bot added the filigran team Item from the Filigran team. label Jun 26, 2026
@Filigran-Automation

Copy link
Copy Markdown
Contributor

🤖 [AI-generated]

Hey @guillaumejparis! 👋 Thanks a lot for opening PR #6396 — this is a meaty CI/build cleanup (+889 / −1458 across 20 files) and really appreciated! 🙏

I just had a quick look and I think the description could be enhanced a little to help reviewers get through it faster. I haven't changed anything in your description — just a gentle, optional suggestion:

Area What could help Suggestion
### Proposed changes Section is still the empty * bullets Summarize what was restructured and why — e.g. the new docker-build / snyk-docker composite actions, the feature-branch deploy workflows, and the removal of docker-build-push / deploy-testing-xtm-one / the bundled yarn release
### Testing Instructions Placeholder text still in place Note how to verify — e.g. which workflows you ran green (core-ci, e2e, release dry-run) and anything reviewers should watch for
### Related issues Closes #ISSUE-NUMBER placeholder Link the tracking issue (Closes #1234) so the PR is tied to an issue per our conventions

💡 If helpful, the contribution conventions / PR template walk through what to include.

No rush at all — thanks again for contributing to OpenAEV! 🚀

@codecov

codecov Bot commented Jun 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 43.93%. Comparing base (3541f4e) to head (d2190d8).

❌ Your project check has failed because the head coverage (2.92%) is below the target coverage (80.00%). You can increase the head coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff            @@
##               main    #6396   +/-   ##
=========================================
  Coverage     43.92%   43.93%           
- Complexity     7201     7204    +3     
=========================================
  Files          2282     2282           
  Lines         62907    62907           
  Branches       8345     8345           
=========================================
+ Hits          27632    27638    +6     
+ Misses        33515    33511    -4     
+ Partials       1760     1758    -2     
Flag Coverage Δ
backend 66.38% <ø> (+0.01%) ⬆️
e2e 18.37% <ø> (ø)
frontend 2.92% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@guillaumejparis guillaumejparis force-pushed the chore/improve_ci branch 4 times, most recently from d34a018 to 537d3c8 Compare July 1, 2026 08:00
@guillaumejparis guillaumejparis marked this pull request as ready for review July 2, 2026 12:04
Copilot AI review requested due to automatic review settings July 2, 2026 12:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors the CI/CD and E2E testing setup to reduce duplication, centralize pipeline logic in a reusable workflow, and standardize version tracking for service container images.

Changes:

  • Consolidates [Core] CI and [Core] Nightly CI into a reusable workflow (_ci-pipeline.yml) driven by JSON matrices.
  • Reworks Playwright configuration to use a single playwright.config.ts with explicit projects (incl. infra projects) and updates frontend scripts accordingly.
  • Introduces shared container image version definitions in .github/versions.env and Renovate rules to track/group container image updates across CI + docker-compose.

Reviewed changes

Copilot reviewed 34 out of 37 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
renovate.json5 Adds Renovate grouping and a regex custom manager to track .github/versions.env docker image tags.
.github/versions.env Introduces a centralized set of docker image versions for CI (and intended CI↔local alignment).
openaev-front/playwright.config.ts Consolidates Playwright project configuration into the base config; adds infra projects and ARM-specific ignores.
openaev-front/package.json Updates E2E scripts to use Playwright projects instead of separate config files.
openaev-front/playwright.push.webkit_config.ts Removed (config consolidated into playwright.config.ts).
openaev-front/playwright.push.chrome_config.ts Removed (config consolidated into playwright.config.ts).
openaev-front/playwright.nightly.config.ts Removed (nightly now uses base config + project selection via pipeline).
openaev-front/playwright.infra.chromium_config.ts Removed (infra now modeled as projects in playwright.config.ts).
.github/workflows/_ci-pipeline.yml New reusable workflow that defines the shared build/test/package/docker pipeline.
.github/workflows/core-ci.yml Refactored to call _ci-pipeline.yml with the “core” matrices and triggers.
.github/workflows/nightly-ci.yml Refactored to call _ci-pipeline.yml with an expanded nightly matrix.
.github/workflows/ci-retry.yml Adds an auto-retry workflow for failed CI/nightly runs.
.github/workflows/core-ci-retry.yml Adds a second (duplicate) auto-retry workflow (currently identical to ci-retry.yml).
.github/workflows/test-feature-branch.yml Switches Docker build workflow to use Dockerfile_ga_deprecated.
.github/workflows/deploy-feature-branch.yml New privileged dispatcher workflow for /deploy PR comments (no PR code checkout).
.github/workflows/deploy-feature-branch-build.yml New unprivileged workflow that checks out PR SHA and builds multi-arch images as artifacts.
.github/workflows/deploy-feature-branch-done.yml New workflow_run handler that updates PR comment based on build result artifact.
.github/workflows/deploy-testing-xtm-one.yml Removed.
.github/workflows/_quality-gates.yml Removed (pipeline logic moved into _ci-pipeline.yml).
.github/workflows/core-release-dry-run.yml Removed.
.github/workflows/copilot-request-review.yml Tightens /review command execution to org members/collaborators only.
.github/actions/api-tests/action.yml Updates service startup to support OpenSearch vs Elasticsearch via .github/versions.env and adds artifact suffixing.
.github/actions/api-types-check/action.yml Sources .github/versions.env for service container versions.
.github/actions/e2e-tests/action.yml Runs E2E against a built Docker image artifact; supports engine selection and infra projects.
.github/actions/prepare-bundled-assets/action.yml New composite action to download binaries, patch catalog version, upload release assets.
.github/actions/docker-build/action.yml New single-platform docker build+validate action producing per-arch OCI artifacts.
.github/actions/docker-merge-platforms/action.yml New action to merge per-platform OCI archives into a multi-arch archive.
.github/actions/sanity-check/action.yml Extracted artifact/image sanity checks into a reusable composite action.
.github/actions/snyk-docker/action.yml New container scan composite action (non-blocking in current implementation).
.github/actions/docker-build-push/action.yml Removed (replaced by single-platform build + merge approach).
Dockerfile Ensures additional Maven modules are copied into the Docker build context.
Dockerfile_ubi9 Improves readability, adds missing module copies, and selects the correct tini binary by arch.
Dockerfile_ubi9_ga Removed.
Dockerfile_ga_deprecated Adds a legacy/temporary GitHub Actions Dockerfile variant.
.github/copilot-instructions.md Updates documentation to reflect Dockerfile changes.

Comment on lines +1 to +5
name: "[Core] Auto-Retry Failed CI"

# Triggers when core-ci or nightly-ci completes with failure.
# Retries failed jobs once (only on first attempt).

Comment thread renovate.json5
Comment on lines +107 to +110
// Group container image updates (docker-compose.yml + .github/versions.env)
// into a single PR per image so CI and local dev stay in sync.
{
groupName: 'container images',
Comment thread .github/versions.env
Comment on lines +1 to +3
# Shared container image versions for CI and local dev.
# Sourced by CI composite actions and by openaev-dev/docker-compose.yml.
# Renovate tracks these via regexManagers (see renovate.json5).
Comment on lines +1 to +6
name: Snyk Container Scan
description: >
Download Docker image artifacts (standard + UBI9 amd64 builds), load them
into the local daemon, run Snyk vulnerability scanning, upload reports,
and fail if high or critical vulnerabilities are found.

Comment on lines +3 to +5
# Nightly: same pipeline, larger matrix.
# Adds OpenSearch, Firefox, Edge, ubuntu-22.04 variants.

Comment on lines +31 to +32
# ── E2E Tests: core browsers + Firefox + Edge + OpenSearch + ubuntu-22 + infra ──
e2e-matrix: >
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

filigran team Item from the Filigran team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants