Skip to content

ci(gitlab): streamline eic manifest DAG dependencies - #381

Open
wdconinc wants to merge 1 commit into
masterfrom
wdconinc-optimize-gitlab-dag
Open

ci(gitlab): streamline eic manifest DAG dependencies#381
wdconinc wants to merge 1 commit into
masterfrom
wdconinc-optimize-gitlab-dag

Conversation

@wdconinc

@wdconinc wdconinc commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

This streamlines the GitLab pipeline DAG so jobs start as soon as their required artifacts are ready, instead of waiting on unrelated shards.

What changed

  • Converted eic-manifest into a matrix job aligned with the eic matrix.
  • Added matrix-aware needs from each eic-manifest shard to its matching eic shard.
  • Scoped manifest processing to build-metadata-${BUILD_IMAGE}${ENV}-*.json so each shard handles only its own image metadata.
  • Added an explicit error when a manifest shard finds no matching metadata files.
  • Updated downstream needs so benchmark and deploy jobs depend only on the specific manifest shard they require.

Duplication reduction and synchronization

  • Introduced YAML anchors/aliases for the shared eic matrix and reused it in eic-manifest.
  • Introduced reusable anchored needs selectors for eic_ci and eic_xl manifest dependencies.

Notes

  • Behavior is unchanged for tagging logic; this is a DAG and maintainability refactor focused on earlier job starts and less duplicated CI config.

Refactor GitLab CI DAG wiring so eic-manifest runs as a matrix aligned with eic and starts per-container as soon as its matching build shard completes. Restrict each manifest shard to its own metadata files and keep benchmark and deploy jobs dependent only on the specific manifest shard they require.

Use YAML anchors to remove duplicated matrix and needs blocks so eic and eic-manifest stay synchronized and eic_ci/eic_xl manifest selectors are reused consistently.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 4, 2026 00:01

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.

🟡 Not ready to approve

The new matrix needs selector appears to be mis-specified (array-vs-scalar mismatch) and eic-manifest doesn’t currently mirror .nightly rules, both of which can break artifact matching / DAG satisfaction and trigger the new “No metadata files found” failure.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.

Pull request overview

This PR refactors the GitLab CI DAG around eic-manifest so manifest jobs can start as soon as their corresponding eic build shard finishes, reducing unnecessary waiting and duplication in the pipeline configuration.

Changes:

  • Converted eic-manifest into a parallel:matrix job aligned with the existing eic matrix via a shared YAML anchor.
  • Added matrix-aware needs wiring so each eic-manifest shard depends on its matching eic shard and processes only its own build-metadata-${BUILD_IMAGE}${ENV}-*.json files.
  • Updated downstream jobs to depend only on the specific manifest shard they require via anchored needs entries.
File summaries
File Description
.gitlab-ci.yml Reworks eic-manifest into a matrix job and rewires needs dependencies to be shard-specific using anchors/aliases.
Review details

Suppressed comments (1)

.gitlab-ci.yml:488

  • The needs:parallel:matrix selector for the upstream eic job uses single-element arrays (e.g. BUILD_IMAGE: ['…']). The upstream eic matrix defines these variables as scalars, so this type mismatch can prevent GitLab from matching the correct eic shard and downloading its artifacts, which will make this shard hit the new "No metadata files found" error.
          - BUILD_IMAGE: ['$[[ matrix.BUILD_IMAGE ]]']
            ENV: ['$[[ matrix.ENV ]]']
            BUILD_TYPE: ['$[[ matrix.BUILD_TYPE ]]']
            BUILDER_IMAGE: ['$[[ matrix.BUILDER_IMAGE ]]']
            RUNTIME_IMAGE: ['$[[ matrix.RUNTIME_IMAGE ]]']
  • Files reviewed: 1/1 changed files
  • Comments generated: 1
  • Review effort level: Lite

We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.

Comment thread .gitlab-ci.yml
Comment on lines 474 to 478
eic-manifest:
parallel:
matrix: *eic_matrix
extends: .docker
stage: eic-manifest
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Capybara summary for PR 381

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.

2 participants