Skip to content

Latest commit

 

History

History
123 lines (107 loc) · 5.36 KB

workflow-reuse.md

File metadata and controls

123 lines (107 loc) · 5.36 KB

Fleet workflow reuse report

Generated by python3 spec/workflow_reuse.py --report at hub ddaeefb4 - do not hand-edit. Each row reads a repo's ground-truth branch at generation time and compares it against the hub canonical of the same name after line-ending, action-pin, and job-needs normalization, per spec/fidelity-model.md "Normalization". Git dates this file. The target model and the migration phases are in docs/reusable-workflows.md.

Fleet Total

  • 69 workflow files, 5,382 lines across 20 downstream repos, 64 of them named for a hub canonical. No workflow at all in EspDinIoT.
  • 2,133 lines (40%) are byte-identical to a hub canonical after normalization, which is the confirmed duplication. The rest is mostly a per-repo edit of the same canonical rather than independent code.
  • Files reaching a hub reusable workflow or composite action through a pinned uses:: 51. That is the state every carried copy converges to, so this number rises and the two above fall as the migration lands.

Per Workflow

Downstream copies of each hub canonical. A variant is a cluster of copies each at or above 0.85 similarity to the cluster's first member, so the cluster count is how many distinct shapes of one workflow the fleet runs today. Callers are the copies that already reach the hub rather than carrying the job bodies.

File Copies Lines Identical to hub Variants Callers
test-pull-request.yml 20 1,720 594 15 16
publish-release.yml 17 1,566 687 14 16
merge-bot-pull-request.yml 17 565 348 3 16
validate-task.yml 3 352 102 3 0
build-release-task.yml 1 140 89 1 0
check-upstream-version-task.yml 1 132 94 1 0
build-docker-task.yml 1 124 61 1 0
publish-plan-task.yml 1 84 66 1 0
get-version-task.yml 1 56 49 1 0
run-periodic-codegen-pull-request.yml 2 52 43 2 2

Variant Members

Each variant names the repos whose copies cluster together, so a hub task's inputs and hooks can be designed against the shapes that exist rather than against the canonical alone.

  • test-pull-request.yml
    • 1: AudioCleaner
    • 1: Blog
    • 2: DevKitCIoT, HolidayLights
    • 1: ESPHome-Config
    • 1: ESPHome-NonRoot
    • 3: Financial-Modeling, HomeAssistant-Config, Vantage-Config
    • 1: HomeAutomation-Config
    • 1: KiCadLibrary
    • 3: LanguageTags, MediaTools, Utilities
    • 1: NxWitness
    • 1: PhotoCleaner
    • 1: PlexCleaner
    • 1: VSCode-Server-DotNetCore
    • 1: aiopurpleair
    • 1: homeassistant-purpleair
  • publish-release.yml
    • 1: Blog
    • 1: ESPHome-Config
    • 1: ESPHome-NonRoot
    • 1: Financial-Modeling
    • 2: HomeAssistant-Config, Vantage-Config
    • 1: HomeAutomation-Config
    • 1: KiCadLibrary
    • 3: LanguageTags, MediaTools, Utilities
    • 1: NxWitness
    • 1: PhotoCleaner
    • 1: PlexCleaner
    • 1: VSCode-Server-DotNetCore
    • 1: aiopurpleair
    • 1: homeassistant-purpleair
  • merge-bot-pull-request.yml
    • 15: Blog, ESPHome-Config, Financial-Modeling, HomeAssistant-Config, HomeAutomation-Config, KiCadLibrary, LanguageTags, MediaTools, NxWitness, PlexCleaner, Utilities, VSCode-Server-DotNetCore, Vantage-Config, aiopurpleair, homeassistant-purpleair
    • 1: ESPHome-NonRoot
    • 1: PhotoCleaner
  • validate-task.yml
    • 1: AudioCleaner
    • 1: ESPHome-NonRoot
    • 1: PlexCleaner
  • build-release-task.yml
    • 1: ESPHome-NonRoot
  • check-upstream-version-task.yml
    • 1: ESPHome-NonRoot
  • build-docker-task.yml
    • 1: ESPHome-NonRoot
  • publish-plan-task.yml
    • 1: ESPHome-NonRoot
  • get-version-task.yml
    • 1: ESPHome-NonRoot
  • run-periodic-codegen-pull-request.yml
    • 1: LanguageTags
    • 1: NxWitness

Per Repo

Repo Files Lines Identical to hub Callers Repo-local files
AudioCleaner 2 134 57 0 -
Blog 4 227 99 4 deploy-site.yml
DevKitCIoT 1 58 33 0 -
ESPHome-Config 3 277 122 3 -
ESPHome-NonRoot 11 1,153 461 0 check-upstream-dependency.yml, check-upstream-version.yml
Financial-Modeling 3 143 107 3 -
HolidayLights 1 53 33 0 -
HomeAssistant-Config 3 123 94 3 -
HomeAutomation-Config 4 196 100 3 test-homelab-runner.yml
KiCadLibrary 3 205 89 3 -
LanguageTags 4 302 106 4 -
MediaTools 3 268 87 3 -
NxWitness 4 330 104 4 -
PhotoCleaner 3 230 90 3 -
PlexCleaner 4 335 120 3 -
Utilities 3 263 85 3 -
VSCode-Server-DotNetCore 3 169 86 3 -
Vantage-Config 3 122 92 3 -
aiopurpleair 3 250 87 3 -
homeassistant-purpleair 4 544 81 3 check-ha-version.yml

Repo-Local Workflows

A workflow no hub canonical names. Each is either genuinely repo-specific, and stays, or a candidate for a hub task with a hook, and the design doc lists which.

  • Blog deploy-site.yml (73 lines)
  • ESPHome-NonRoot check-upstream-dependency.yml (111 lines)
  • ESPHome-NonRoot check-upstream-version.yml (41 lines)
  • HomeAutomation-Config test-homelab-runner.yml (51 lines)
  • homeassistant-purpleair check-ha-version.yml (315 lines)