Skip to content

About

This repository serves as the central automation, orchestration, and data backbone for the Armbian project’s CI/CD infrastructure. It manages and publishes critical workflows, build artifacts, metadata, and machine-readable content that power Armbian’s public services and infrastructure.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Armbian logo

armbian.github.io

Purpose of This Repository

This repository is the central automation and orchestration hub for the Armbian project. It coordinates CI workflows, maintains board assets and metadata, syncs external data sources, and generates machine-readable artifacts that drive armbian.com, docs.armbian.com, the download index, and related Armbian infrastructure.

Generated outputs are published to the data branch and surfaced through github.armbian.com for consumption by downstream automation, reporting, and content delivery.

Workflow Status & Monitoring

GitHub actions dashboard →

Monitor all automation workflows with real-time status tracking:

  • 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

Repository Layout

Path Contents
board-images/ Per-board PNG product photos used for thumbnail generation.
board-vendor-logos/ Vendor logo assets (PNG / JPG / SVG) used for thumbnail generation.
board-pinouts/ Per-board pinout references, published to the Armbian cache mirrors.
board-schematics/ Per-board schematic references, published to the Armbian cache mirrors.
board-instructions/ Per-board flashing / usage instructions (Markdown).
release-targets/ Inputs and generated outputs for the CI/CD build-target YAML matrix. See release-targets/README.md.
scripts/ Python, Node.js and shell helpers invoked by the workflows (JSON index generators, Jira exporter, keyring collector, ping scripts, etc.).
templates/ Shared templates used by generator scripts.
.github/workflows/ GitHub Actions definitions driving automation, data refresh, infrastructure, monitoring and release reporting.

The data branch is used as a publication target: most workflows regenerate a JSON / YAML / HTML artifact on main and commit it to data/ on the data branch (served from github.armbian.com).

What This Repository Produces

The automation here maintains, among other things:

  • Build target matrix — release-targets/targets-release-*.yaml and exposed.map are generated by scripts/generate_targets.py from the live image-info.json board inventory. See release-targets/README.md for the full input/output contract, board classification rules, and the Debian / Ubuntu codename substitution scheme.
  • Download index — armbian-images.json plus a packaged all-torrents.zip, aggregated from the Armbian mirror network and enriched with partner/vendor data.
  • Board inventory — image-info.json is refreshed from the armbian/build framework (./compile.sh inventory-boards) and feeds the release-target generator.
  • DUT inventory — dut-inventory.json is derived from NetBox and maps devices-under-test to their serial console TCP ports for CI agents.
  • Package data — base-files.json (Debian/Ubuntu base-files index across releases and architectures) and the latest Debian / Ubuntu archive-keyring .deb packages under data/keyrings/.
  • Partner & maintainer data — partners.json and maintainer records (with GitHub avatars and activity timestamps) enriched from Zoho Bigin.
  • Raspberry Pi Imager JSON — rpi-imager.json manifest for use with the official RPi Imager.
  • Board & vendor thumbnails — Multi-width thumbnails rendered from board-images/ and board-vendor-logos/ and pushed to the Armbian cache mirrors.
  • Jira excerpts — jira-current.html / jira-next.html HTML snippets listing the current and next planned release's open issues.
  • Automation status reports — Per-repository actions-report-*.json dumps aggregated for the actions dashboard.

Technologies

The repository is intentionally polyglot — each generator uses the tooling best suited to its data source:

  • Python 3 — most data generators and the release-target engine (scripts/generate_targets.py, scripts/generate_kernel_descriptions.py, scripts/generate-base-files-info-json.py, scripts/generate-rpi-imager-json.py, scripts/ping-unresolved-reviews.py, scripts/days_since_last_commit.py, Jira exporter).
  • Bash / shell — mirror and index pipelines (e.g. scripts/generate-armbian-images-json.sh) and the shell logic inside workflow run: steps.
  • Node.js — the actions-report scanner (scripts/generate-actions-report.mjs) using fast-glob and js-yaml.
  • YAML — GitHub Actions workflow definitions under .github/workflows/ and the generated build-target matrices under release-targets/.
  • GraphicsMagick and pngquant — board/vendor thumbnail rendering.
  • jq, rsync, curl — used throughout the pipelines for JSON wrangling and mirror synchronization.

External services integrated by the automation include GitHub, NetBox, Zoho Bigin, Atlassian Jira, the Armbian mirror network, and Hetzner (for self-hosted runners).

Contributing

Contributions are welcome — see CONTRIBUTING.md for the development workflow, and CODE_OF_CONDUCT.md for community guidelines.

Other ways to contribute:

License

Licensed under the GNU General Public License v2.

About

This repository serves as the central automation, orchestration, and data backbone for the Armbian project’s CI/CD infrastructure. It manages and publishes critical workflows, build artifacts, metadata, and machine-readable content that power Armbian’s public services and infrastructure.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages