chore(ci): refactor code structure for improved readability and maint…#6396
chore(ci): refactor code structure for improved readability and maint…#6396guillaumejparis wants to merge 15 commits into
Conversation
|
🤖 [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:
No rush at all — thanks again for contributing to OpenAEV! 🚀 |
2dd25a0 to
220b28f
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. ❌ 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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
d34a018 to
537d3c8
Compare
96d422f to
0116efd
Compare
There was a problem hiding this comment.
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] CIand[Core] Nightly CIinto a reusable workflow (_ci-pipeline.yml) driven by JSON matrices. - Reworks Playwright configuration to use a single
playwright.config.tswith explicit projects (incl. infra projects) and updates frontend scripts accordingly. - Introduces shared container image version definitions in
.github/versions.envand 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. |
| name: "[Core] Auto-Retry Failed CI" | ||
|
|
||
| # Triggers when core-ci or nightly-ci completes with failure. | ||
| # Retries failed jobs once (only on first attempt). | ||
|
|
| // 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', |
| # 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). |
| 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. | ||
|
|
| # Nightly: same pipeline, larger matrix. | ||
| # Adds OpenSearch, Firefox, Edge, ubuntu-22.04 variants. | ||
|
|
| # ── E2E Tests: core browsers + Firefox + Edge + OpenSearch + ubuntu-22 + infra ── | ||
| e2e-matrix: > |
…ainability
Proposed changes
Testing Instructions
Related issues
Checklist
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...