From 0d41eb848f5eadaa9866a041f57961f92d8c35b3 Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Sun, 10 May 2026 20:25:24 +0200 Subject: [PATCH] docs: README diagram of the download / directory dispatch chain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Show how a release ripples through the automation: external triggers (SDK build / manual / schedule) → download-index → redirector → data branch pushes → directory regen → cross-repo website sync. Mermaid renders natively on GitHub; solid arrows fire, dotted arrow is the GITHUB_TOKEN-suppressed step that intentionally breaks what would otherwise be a redirector ↔ download-index loop. Footnote lists the other GITHUB_TOKEN-suppressed Web: Directory listing dispatchers so readers understand why the directory regen relies on the data-branch push trigger instead of those. --- README.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/README.md b/README.md index 35619c84b..d1de20b03 100644 --- a/README.md +++ b/README.md @@ -21,3 +21,40 @@ Monitor all automation workflows with real-time status tracking: - **Live status** — Current state of running CI/CD pipelines and scheduled tasks - **Debugging tools** — Detailed logs and error traces for failed workflows +### Download / directory dispatch chain + +How a fresh release ripples through the automation. Solid arrows fire; the dotted arrow is intentionally suppressed by GitHub's `GITHUB_TOKEN` same-repo guard (it's the loop-breaker — without it, `redirector ↔ download-index` would cycle forever). + +```mermaid +flowchart TD + manual([manual workflow_dispatch / schedule]):::ext + sdk[armbian/sdk
Build Armbian SDK]:::ext + + manual --> dl + manual --> redir + manual --> dir + sdk -. repository_dispatch
'Data: Update download index' .-> dl + + subgraph ghio [armbian/armbian.github.io] + dl[Data: Generate Armbian download index]:::wf + redir[Infrastructure: Update CDN redirector]:::wf + dir[Web: Generate github.armbian.com content]:::wf + syncDispatch[Infrastructure: Dispatch website sync]:::wf + + dl -- repository_dispatch
'Infrastructure: Update redirector' --> redir + dl == commit to data branch ==> dir + redir == commit to data branch ==> dir + redir -. GITHUB_TOKEN suppressed
'Data: Update download index' .-> dl + + dir -- workflow_run completed --> syncDispatch + end + + syncDispatch -- repository_dispatch
'sync' --> websiteSync + websiteSync[armbian/website
Website: Trigger data sync]:::ext + + classDef ext fill:#f5f5f5,stroke:#999,color:#333,font-style:italic; + classDef wf fill:#e0f2fe,stroke:#0369a1,color:#0c4a6e; +``` + +Beyond this chain, several smaller producers (`data-update-image-info`, `data-update-base-files-info`, `data-update-jira-excerpt`, `data-update-partners-data`, `generate-build-lists`, `generate-keyring-data`, `generate-servers-jsons`, `generate-torrent-tracker-lists`, `repository-status`) all dispatch `Web: Directory listing` via `GITHUB_TOKEN`. Those dispatches are suppressed by the same-repo guard — `generate-web-directory` regenerates from the underlying `data` branch push instead. +