# eu-digital-identity-wallet/eudi-infra-ci architecture

> Architecture diagram of the GitHub repository eu-digital-identity-wallet/eudi-infra-ci, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/eu-digital-identity-wallet/eudi-infra-ci
- Repository: https://github.com/eu-digital-identity-wallet/eudi-infra-ci

## Overview

This repository centralizes reusable CI/CD workflows for EUDIW projects and includes utilities for processing coverage reports. The documented user flow is consuming shared workflows across repositories, with centralized workflow updates benefiting those consumers. The workflow files are listed in the tree but their contents were not sampled, so their internal jobs and integrations are not mapped. The coverage utilities’ behavior is supported by the sampled source; their invocation by workflows is not established.

Main entry points: [`ci-scripts/kover-to-cobertura.py`](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/kover-to-cobertura.py) (Kover converter), [`.github/workflows`](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/tree/main/.github/workflows) (Reusable CI workflows), [`ci-scripts/cobertura-to-html.py`](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/cobertura-to-html.py) (HTML coverage renderer), [`ci-scripts/source_index.py`](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/source_index.py) (Source indexing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shared_workflows["Shared workflows"]
  node_workflow_catalog["Reusable CI workflows<br/>[workflows]"]
end

subgraph group_coverage_tools["Coverage tools"]
  node_kover_converter["Kover converter"]
  node_cobertura_report["Cobertura report"]
  node_html_renderer["HTML coverage renderer"]
end

subgraph group_source_lookup["Source lookup"]
  node_source_index["Source indexing<br/>[source_index.py]"]
end

node_project_teams(("Project teams"))
node_dependent_projects["Dependent repositories"]

node_project_teams -->|"reuse workflows"| node_workflow_catalog
node_workflow_catalog -->|"centralize updates"| node_dependent_projects
node_kover_converter -->|"writes report"| node_cobertura_report
node_cobertura_report -.->|"reads report"| node_html_renderer
node_html_renderer -->|"resolves sources"| node_source_index
node_kover_converter -.->|"collects sources"| node_source_index

click node_workflow_catalog "https://github.com/eu-digital-identity-wallet/eudi-infra-ci/tree/main/.github/workflows"
click node_kover_converter "https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/kover-to-cobertura.py"
click node_html_renderer "https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/cobertura-to-html.py"
click node_source_index "https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/source_index.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workflow_catalog toneBlue
class node_kover_converter,node_cobertura_report,node_html_renderer toneAmber
class node_source_index toneMint
class node_project_teams,node_dependent_projects toneIndigo
```

## Components

### Shared workflows

- [Reusable CI workflows](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/tree/main/.github/workflows): `.github/workflows`

### Coverage tools

- [Kover converter](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/kover-to-cobertura.py): `ci-scripts/kover-to-cobertura.py`
- **Cobertura report**
- [HTML coverage renderer](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/cobertura-to-html.py): `ci-scripts/cobertura-to-html.py`

### Source lookup

- [Source indexing](https://github.com/eu-digital-identity-wallet/eudi-infra-ci/blob/main/ci-scripts/source_index.py): `ci-scripts/source_index.py`

### Other components

- **Project teams**
- **Dependent repositories**

## Connections

- Project teams → Reusable CI workflows: reuse workflows (evidence: `README.md`)
- Reusable CI workflows → Dependent repositories: centralize updates (evidence: `README.md`)
- Kover converter → Cobertura report: writes report (evidence: `ci-scripts/kover-to-cobertura.py`)
- Cobertura report → HTML coverage renderer: reads report
- HTML coverage renderer → Source indexing: resolves sources (evidence: `ci-scripts/cobertura-to-html.py`)
- Kover converter → Source indexing: collects sources (evidence: `ci-scripts/kover-to-cobertura.py`)
