diff --git a/.github/workflows/maintenance-update-readme.yml b/.github/workflows/maintenance-update-readme.yml index 556cb5409a..ed8078ae9f 100644 --- a/.github/workflows/maintenance-update-readme.yml +++ b/.github/workflows/maintenance-update-readme.yml @@ -12,8 +12,12 @@ # # Secrets (already present on this repo): # ANTHROPIC_API_KEY - Claude API key (same one reporting-release-summary uses) -# ACCESS_TOKEN - PAT with `repo` scope on the target repos (the builtin -# GITHUB_TOKEN cannot push branches / open PRs cross-repo) +# ACCESS_TOKEN_ARMBIANWORKER +# - armbianworker PAT with `repo` scope on the target repos +# (the builtin GITHUB_TOKEN cannot push branches / open PRs +# cross-repo). Must be the worker account, not a person: +# reporting-release-summary.yml filters the release digest +# by PR author, and a human author lands these in the notes. name: "Maintenance: Update README (AI)" on: @@ -70,7 +74,7 @@ jobs: uses: actions/checkout@v7 with: repository: ${{ matrix.repo }} - token: ${{ secrets.ACCESS_TOKEN }} + token: ${{ secrets.ACCESS_TOKEN_ARMBIANWORKER }} path: target fetch-depth: 0 @@ -89,7 +93,7 @@ jobs: # closed: any gh/API error aborts the run rather than proceeding feedback-less. - name: Collect reviewer feedback from the open README PR env: - GH_TOKEN: ${{ secrets.ACCESS_TOKEN }} + GH_TOKEN: ${{ secrets.ACCESS_TOKEN_ARMBIANWORKER }} REPO: ${{ matrix.repo }} run: | set -euo pipefail @@ -121,7 +125,7 @@ jobs: - name: Open pull request uses: peter-evans/create-pull-request@v8 with: - token: ${{ secrets.ACCESS_TOKEN }} + token: ${{ secrets.ACCESS_TOKEN_ARMBIANWORKER }} path: target branch: chore/update-readme delete-branch: true diff --git a/README.md b/README.md index 35619c84bf..486c7a6bfd 100644 --- a/README.md +++ b/README.md @@ -3,21 +3,81 @@

-### Purpose of This Repository +# armbian.github.io -This repository acts as a central **automation and orchestration hub** for the Armbian project. It coordinates CI workflows, maintains metadata, syncs external data, and generates machine-readable output to power [armbian.com](https://www.armbian.com), [docs.armbian.com](https://docs.armbian.com), and related services. +## Purpose of This Repository -It also produces [data exchange files](https://github.armbian.com/) used for automation, reporting, and content delivery across the Armbian infrastructure. +This repository is the **automation and data hub** for the Armbian project. It hosts the CI workflows, Python and shell scripts, board/vendor artwork, and release-target configuration that together generate the metadata powering [armbian.com](https://www.armbian.com), [docs.armbian.com](https://docs.armbian.com), and Armbian's download and mirror infrastructure. +Generated data (image indices, partner lists, torrent trackers, release-target YAML, keyrings, MOTD, etc.) is published to the repository's `data` branch and served from [github.armbian.com](https://github.armbian.com/). -### Workflow Status & Monitoring +## Repository Layout -**[GitHub actions dashboard](https://actions.armbian.com/?repo=armbian.github.io)** +``` +board-images/ Per-board product photos (PNG), thumbnailed by CI +board-vendor-logos/ Per-vendor logo files, thumbnailed by CI +release-targets/ Inputs & config for the build-target YAML generator +scripts/ Python, Bash and Node scripts run by the workflows +templates/ Templates used by generation scripts +.github/workflows/ Scheduled and event-driven automation +``` -Monitor all automation workflows with real-time status tracking: +The `release-targets/` directory has its own [README](release-targets/README.md) covering the target-YAML generator, its inputs (`targets-extensions.map`, `exposed.map.overrides.yaml`, `reusable.yml`, `targets-release-.blacklist`, `targets-release-.manual`) and outputs (`targets-release-*.yaml`, `exposed.map`). -- **Execution history** — Complete log of past workflow runs with timestamps and outcomes -- **Performance metrics** — Runtime duration, resource usage, and success/failure rates -- **Live status** — Current state of running CI/CD pipelines and scheduled tasks -- **Debugging tools** — Detailed logs and error traces for failed workflows +## What This Repository Produces +The workflows here maintain — on the `data` branch — a set of machine-readable files consumed by the Armbian website, the build framework, and third-party tools. Highlights: + +| File / path (on `data` branch) | Description | +|---|---| +| `data/image-info.json` | Inventory of all boards known to `armbian/build`. | +| `data/armbian-images.json` | Full download index cross-referenced with the mirror source of truth. | +| `data/release-targets/targets-release-*.yaml` | Build-matrix definitions for standard-support, nightly, community and apps images. | +| `data/release-targets/exposed.map` | Regex patterns the website uses to pick each board's "recommended image". | +| `data/release-targets/kernel-description.json` | Human-readable kernel branch descriptions. | +| `data/partners.json`, `data/maintainers_with_avatars.json` | Partner and maintainer data enriched from Zoho Bigin and GitHub. | +| `data/rpi-imager.json` | Armbian catalog for the Raspberry Pi Imager tool. | +| `data/base-files.json` | Index of the Armbian `base-files` package versions. | +| `data/keyrings/` | Latest Debian and Ubuntu archive-keyring `.deb` packages. | +| `data/servers/{download,cache,upload,github-runners}.jq` | Live server inventory pulled from NetBox. | +| `data/servers/best-torrent-servers.txt` | Curated BitTorrent tracker list for image torrents. | +| `data/actions-report/` | CI status snapshots for the Armbian repositories. | +| `data/quotes.txt` | MOTD messages for installed Armbian systems. | +| `data/jira-current.html`, `data/jira-next.html` | Rendered Jira excerpts of current and next release scope. | + +## Built With + +- **Python 3** — data generators under `scripts/` (e.g. `generate_targets.py`, `generate_kernel_descriptions.py`, `generate-base-files-info-json.py`, `generate-rpi-imager-json.py`, `days_since_last_commit.py`). +- **Bash** — glue and mirror-side shell scripts (e.g. `generate-armbian-images-json.sh`) plus the `run:` steps embedded in the workflows. +- **Node.js** — `scripts/generate-actions-report.mjs` for the CI status reports. +- **GitHub Actions (YAML)** — orchestration of scheduled, dispatched and event-driven jobs. +- **jq**, **curl**, **rsync**, **GraphicsMagick + pngquant** — invoked from the workflows for JSON shaping, HTTP/rsync transfers and image thumbnailing. + +## Branches + +- **`master`** — source of truth: workflows, scripts, board & vendor artwork, release-target configuration. +- **`data`** — machine-generated outputs, committed by CI and served from [github.armbian.com](https://github.armbian.com/). Do not edit by hand. + +## Workflow Status & Monitoring + +**[GitHub Actions dashboard for this repository](https://actions.armbian.com/?repo=armbian.github.io)** + +Rather than enumerating every workflow here, the Armbian Actions dashboard provides: + +- **Execution history** — every past workflow run with timestamps and outcomes +- **Performance metrics** — runtime duration, success/failure rates +- **Live status** — current state of scheduled and dispatched jobs +- **Debugging tools** — logs and error traces for failed runs + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md) for how to propose changes, and [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for community expectations. Additional ways to help: + +- [Become a board maintainer](https://docs.armbian.com/Board_Maintainers_Procedures_and_Guidelines/) +- [Apply for a project position](https://forum.armbian.com/staffapplications/) +- [Help cover costs](https://forum.armbian.com/subscriptions/) +- [Answer questions on the forum](https://forum.armbian.com/) + +## License + +Distributed under the terms of the GNU General Public License v2. See [LICENSE](LICENSE) for the full text.