Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions .github/workflows/maintenance-update-readme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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

Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
80 changes: 70 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,81 @@
<br><br>
</h2>

### 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-<type>.blacklist`, `targets-release-<type>.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.
Loading