docs: refresh README (AI-assisted) - #34
Conversation
01c8b40 to
f14fabe
Compare
f14fabe to
4556640
Compare
WalkthroughREADME.md documents board and maintainer list workflows, pipeline inputs, support-track naming, release-target retrieval, and coordinated versioning. It replaces the watchdog failed-job-count limit with a minimum successful-job percentage threshold. It adds release cleanup, tooling, related repository, and further-reading documentation while removing older build execution and secrets sections. Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Line 34: Update the workflow name in the README entry near
“build-standard-support.yml” to match the name used in the other section, “Build
Standard Support Images,” so both references are consistent.
- Line 67: Update the fenced code block containing the ASCII workflow diagram in
README.md to specify the text language identifier, changing the opening fence to
use text and leaving the diagram content unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
|
|
||
| Flow inside the reusable pipeline: | ||
|
|
||
| ``` |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Add a language identifier to the fenced code block.
markdownlint-cli2 reports MD040 at Line 67. Use text for this ASCII workflow diagram.
Proposed fix
-```
+```text📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.23.1)
[warning] 67-67: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 67, Update the fenced code block containing the ASCII
workflow diagram in README.md to specify the text language identifier, changing
the opening fence to use text and leaving the diagram content unchanged.
Source: Linters/SAST tools
4556640 to
5e05b31
Compare
5e05b31 to
1578ff2
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Around line 106-109: Update the README versioning section to match the
complete-artifact-matrix workflow: state that stable releases are read from REPO
(the source repository), while TARGET is the repository receiving the release,
and clarify that non-leader trunk targets may reuse the leader repository’s
existing counter rather than always incrementing N. Preserve the existing
versionOverride and missing-release behavior.
- Line 155: Update the README dependency description to call the versioned
action references versioned dependencies rather than pinned dependencies, unless
the referenced GitHub Actions are changed to immutable commit SHA pins.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| Versioning is driven entirely by GitHub releases on the target repository — there is no version file in this repo: | ||
|
|
||
| - **Stable** builds require `versionOverride` (e.g. `26.8.0`). | ||
| - **Nightly** builds pick the newest `<base>-trunk.N` release in the target repo and bump `N`; `versionOverride` can seed a new base series. | ||
| - **Stable** tracks (standard-support, apps) reuse the latest `X.Y.Z` release in the source repo. `versionOverride` wins if set; otherwise an error is raised if no `X.Y.Z` release exists yet. | ||
| - **Nightly / trunk** tracks pick the newest `<base>-trunk.N` release and bump `N`. The counter is monotonic across a leader repo (`armbian/ci`) and its peer repos (e.g. `armbian/community`), so nightly and community stay ordered against each other. `versionOverride` can seed a new base series. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Align the versioning description with the workflow contract.
Line 106 says versions come from the target repository. .github/workflows/complete-artifact-matrix.yml reads stable versions from REPO (github.repository) and uses TARGET for the repository that receives the release. Also, a non-leader trunk target can reuse the leader’s counter; it does not always bump N. Update this section so operators do not inspect the wrong repository or expect a new number for every peer run.
Proposed clarification
-Versioning is driven entirely by GitHub releases on the target repository — there is no version file in this repo:
+Stable version lookup uses GitHub releases in the workflow repository. Trunk lookup uses the leader and peer repositories. Releases are published to the track's target repository. There is no version file in this repo:
-- **Nightly / trunk** tracks pick the newest `<base>-trunk.N` release and bump `N`. The counter is monotonic across a leader repo (`armbian/ci`) and its peer repos (e.g. `armbian/community`), so nightly and community stay ordered against each other. `versionOverride` can seed a new base series.
+- **Nightly / trunk** tracks resolve the newest `<base>-trunk.N` across the leader and peer repositories. The leader increments the counter. A non-leader target reuses the leader's counter when it is ahead; otherwise, it increments the global maximum. `versionOverride` can seed a new base series.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Versioning is driven entirely by GitHub releases on the target repository — there is no version file in this repo: | |
| - **Stable** builds require `versionOverride` (e.g. `26.8.0`). | |
| - **Nightly** builds pick the newest `<base>-trunk.N` release in the target repo and bump `N`; `versionOverride` can seed a new base series. | |
| - **Stable** tracks (standard-support, apps) reuse the latest `X.Y.Z` release in the source repo. `versionOverride` wins if set; otherwise an error is raised if no `X.Y.Z` release exists yet. | |
| - **Nightly / trunk** tracks pick the newest `<base>-trunk.N` release and bump `N`. The counter is monotonic across a leader repo (`armbian/ci`) and its peer repos (e.g. `armbian/community`), so nightly and community stay ordered against each other. `versionOverride` can seed a new base series. | |
| Stable version lookup uses GitHub releases in the workflow repository. Trunk lookup uses the leader and peer repositories. Releases are published to the track's target repository. There is no version file in this repo: | |
| - **Stable** tracks (standard-support, apps) reuse the latest `X.Y.Z` release in the source repo. `versionOverride` wins if set; otherwise an error is raised if no `X.Y.Z` release exists yet. | |
| - **Nightly / trunk** tracks resolve the newest `<base>-trunk.N` across the leader and peer repositories. The leader increments the counter. A non-leader target reuses the leader's counter when it is ahead; otherwise, it increments the global maximum. `versionOverride` can seed a new base series. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 106 - 109, Update the README versioning section to
match the complete-artifact-matrix workflow: state that stable releases are read
from REPO (the source repository), while TARGET is the repository receiving the
release, and clarify that non-leader trunk targets may reuse the leader
repository’s existing counter rather than always incrementing N. Preserve the
existing versionOverride and missing-release behavior.
| - **Python 3** — `tools/update-workflow-board-lists.py`. | ||
| - **`gh` CLI + `jq`** — release/version resolution, job accounting, run re-runs, release cleanup. | ||
| - **`armbian/actions/*`** — reused composite actions (`team-check`, `runner-clean`). | ||
| - **`docker/login-action`, `actions/checkout`, `peter-evans/create-pull-request`** — pinned action dependencies (see `.github/dependabot.yml`). |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
non_sha_refs="$(
rg -nP '^\s*uses:\s*[^@[:space:]]+@(?![0-9a-fA-F]{40}\s*$)\S+' .github/workflows || true
)"
if [ -n "$non_sha_refs" ]; then
printf '%s\n' "$non_sha_refs"
exit 1
fiRepository: armbian/ci
Length of output: 3416
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf 'README relevant line:\n'
sed -n '148,160p' README.md
printf '\nWorkflow action references by tag format:\n'
python3 - <<'PY'
import re
from pathlib import Path
sha40 = re.compile(r'^[0-9a-fA-F]{40}$')
for path in sorted(Path('.github/workflows').glob('*.yml')):
for n, line in enumerate(path.read_text().splitlines(), 1):
m = re.search(r'uses:\s*([^@\s]+)@([^#\s]+)', line)
if not m:
continue
ref = m.group(2)
status = 'SHA' if sha40.match(ref) else 'non-SHA tag/ref'
print(f'{path}:{n}:{status}:{ref}')
PYRepository: armbian/ci
Length of output: 3525
Do not call versioned action tags pinned dependencies.
Line 155 describes actions/checkout@v7, docker/login-action@v4, and peter-evans/create-pull-request@v8 as pinned, but these are mutable tags or branch refs rather than commit SHA pins. Use versioned or pin the actions to SHAs before keeping pinned here.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 155, Update the README dependency description to call the
versioned action references versioned dependencies rather than pinned
dependencies, unless the referenced GitHub Actions are changed to immutable
commit SHA pins.
Automated README refresh generated by the Maintenance: Update README (AI)
workflow in
armbian.github.io.The content is generated by Claude from this repository's own files (file tree,
manifests, workflows, existing README). Please review for accuracy before
merging — edit or close if anything is wrong.
Leave review comments here: while this PR stays open, the next run reads them
and folds your fixes into the regenerated README (they won't be overwritten).