You've already forked documentation
mirror of
https://github.com/armbian/documentation.git
synced 2026-01-06 10:13:36 -08:00
2668 lines
75 KiB
HTML
2668 lines
75 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<meta name="description" content="Official documentation for Armbian OS and Armbian build framework">
|
|
|
|
|
|
<meta name="author" content="Armbian team">
|
|
|
|
|
|
<link rel="canonical" href="https://docs.armbian.com/Process_CI/">
|
|
|
|
|
|
<link rel="prev" href="../Mirrors/">
|
|
|
|
|
|
<link rel="next" href="../User-Guide_Board-Support-Rules/">
|
|
|
|
|
|
<link rel="icon" href="../images/logo.png">
|
|
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.12">
|
|
|
|
|
|
|
|
<title>Automation - Armbian Documentation</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/main.2afb09e1.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../css/armbian-extra.css">
|
|
|
|
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script id="__analytics">function __md_analytics(){function e(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],e("js",new Date),e("config","UA-284946-9"),document.addEventListener("DOMContentLoaded",(function(){document.forms.search&&document.forms.search.query.addEventListener("blur",(function(){this.value&&e("event","search",{search_term:this.value})}));document$.subscribe((function(){var t=document.forms.feedback;if(void 0!==t)for(var a of t.querySelectorAll("[type=submit]"))a.addEventListener("click",(function(a){a.preventDefault();var n=document.location.pathname,d=this.getAttribute("data-md-value");e("event","feedback",{page:n,data:d}),t.firstElementChild.disabled=!0;var r=t.querySelector(".md-feedback__note [data-md-value='"+d+"']");r&&(r.hidden=!1)})),t.hidden=!1})),location$.subscribe((function(t){e("config","UA-284946-9",{page_path:t.pathname})}))}));var t=document.createElement("script");t.async=!0,t.src="https://www.googletagmanager.com/gtag/js?id=UA-284946-9",document.getElementById("__analytics").insertAdjacentElement("afterEnd",t)}</script>
|
|
|
|
<script>"undefined"!=typeof __md_analytics&&__md_analytics()</script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="red" data-md-color-accent="red">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#automation-for-developers-and-maintainers" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
<aside class="md-banner">
|
|
<div class="md-banner__inner md-grid md-typeset">
|
|
|
|
|
|
<a href="https://github.com/sponsors/armbian">
|
|
<span class="twemoji twitter">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="m47.6 300.4 180.7 168.7c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l180.7-168.7c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141-45.6-7.6-92 7.3-124.6 39.9l-12 12-12-12c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5"/></svg>
|
|
</span> Become a sponsor to Armbian!
|
|
</a>
|
|
<a rel="me" href="https://fosstodon.org/@armbian"></a>
|
|
|
|
</div>
|
|
|
|
</aside>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<header class="md-header" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href=".." title="Armbian Documentation" class="md-header__button md-logo" aria-label="Armbian Documentation" data-md-component="logo">
|
|
|
|
<img src="../images/logo.svg" alt="logo">
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
Armbian Documentation
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
Automation
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="red" data-md-color-accent="red" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4M7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="" data-md-color-scheme="slate" data-md-color-primary="red" data-md-color-accent="red" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3"/></svg>
|
|
</label>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://github.com/armbian/documentation" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1M480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2m-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3m-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
armbian/documentation
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
|
<div class="md-grid">
|
|
<ul class="md-tabs__list">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href=".." class="md-tabs__link">
|
|
|
|
|
|
|
|
ARMBIAN OS
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../User-Guide_Armbian-Config/" class="md-tabs__link">
|
|
|
|
|
|
|
|
ARMBIAN CONFIG
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../User-Guide_Armbian-Software/" class="md-tabs__link">
|
|
|
|
|
|
|
|
ARMBIAN SOFTWARE
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../Developer-Guide_Overview/" class="md-tabs__link">
|
|
|
|
|
|
|
|
ARMBIAN BUILD FRAMEWORK
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../Community_Forums/" class="md-tabs__link">
|
|
|
|
|
|
|
|
ARMBIAN COMMUNITY
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item md-tabs__item--active">
|
|
<a href="../Process_Contribute/" class="md-tabs__link">
|
|
|
|
|
|
|
|
CONTRIBUTE
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href=".." title="Armbian Documentation" class="md-nav__button md-logo" aria-label="Armbian Documentation" data-md-component="logo">
|
|
|
|
<img src="../images/logo.svg" alt="logo">
|
|
|
|
</a>
|
|
Armbian Documentation
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://github.com/armbian/documentation" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1M480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2m-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3m-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
armbian/documentation
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ARMBIAN OS
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_1">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
ARMBIAN OS
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href=".." class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Introduction
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Getting-Started/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Getting Started
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Configuration/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Configuration
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1_4" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1_4" id="__nav_1_4_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Advanced Usage
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_1_4_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_1_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Advanced Usage
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Advanced-Features/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Advanced Features
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Networking/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Networking
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Autoconfig/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Firstboot config
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Troubleshooting/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Troubleshooting and Recovery
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_FAQ/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
FAQ
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1_7" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_1_7" id="__nav_1_7_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Appendix
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_1_7_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_1_7">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Appendix
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Release_Changelog/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Changelog
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Process_Release-Model/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Release Model
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Unit Test Status
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ARMBIAN CONFIG
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
ARMBIAN CONFIG
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Config/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Overview
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Config/System/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
System
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Config/Network/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Network
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Config/Localisation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Localisation
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ARMBIAN SOFTWARE
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_3">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
ARMBIAN SOFTWARE
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Overview
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/WebHosting/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Web hosting
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Containers/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Containers
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Backup/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Backup
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Music/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Music
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Finance/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Finance
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Database/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Database
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Downloaders/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Downloaders
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/DNS/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
DNS blockers
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/HomeAutomation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Home Automation
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Monitoring/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Monitoring
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/DevTools/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
DevTools
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Management/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Management
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Printing/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Printing
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Media/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Media
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Armbian-Software/Netconfig/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Netconfig
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ARMBIAN BUILD FRAMEWORK
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_4">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
ARMBIAN BUILD FRAMEWORK
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Overview/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Overview
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Build-Preparation/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Getting Started
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Build-Commands/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Build Commands
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Build-Switches/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Build Switches
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_User-Configurations/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
User Configurations
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Extensions-Hooks/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Extensions Hooks
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Building-with-Multipass/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Building with Multipass
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Building-with-Docker/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Building with Docker
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Developer-Guide_Extensions/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Extensions
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_5" >
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
ARMBIAN COMMUNITY
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
|
|
<label class="md-nav__title" for="__nav_5">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
ARMBIAN COMMUNITY
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Community_Forums/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Forums
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Community_Github/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Github
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Community_IRC/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Chat
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
CONTRIBUTE
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_6">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
CONTRIBUTE
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Process_Contribute/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Contribute
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Contribute/Armbian-config/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Armbian config
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../WifiPerformance/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Wifi performance tests
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../Mirrors/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Mirrors
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Automation
|
|
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Automation
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare-build-lists" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Prepare build lists
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Prepare build lists">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#recommended-images" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Recommended images
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#build-templates" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Build templates
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#grouping-logic" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Grouping logic
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#blacklisting" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Blacklisting
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#extensions" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Extensions
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#testing" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Testing
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare-standard-support-images-for-release" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Prepare Standard Support images for release
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Prepare Standard Support images for release">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#1-open-workflow-and-click" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
1. Open workflow and click
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#2-select-board" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
2. Select board
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#3-run-workflow" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
3. Run workflow
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#aditional-options" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Aditional options
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare-application-images-for-release-release-manager" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Prepare application images for release (release manager)
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Prepare application images for release (release manager)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#1-open-workflow-and-click_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
1. Open workflow and click
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#2-select-board_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
2. Select board
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#3-run-workflow_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
3. Run workflow
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#aditional-options_1" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Aditional options
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#repository-update-cronjobrelease-manager" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Repository update (cronjob/release manager)
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Repository update (cronjob/release manager)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#1-open-workflow-and-click_2" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
1. Open workflow and click
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#2-include-artifacts-from-generated-images" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
2. Include artifacts from generated image(s)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#3-run-workflow_2" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
3. Run workflow
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#build-all-artifacts-cronjob" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Build all artifacts (cronjob)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#build-rolling-release-images-cronjob" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Build Rolling Release Images (cronjob)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#watchdog-cronjob" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Watchdog (cronjob)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#smoke-tests-on-hardware-devices-release-manager" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Smoke tests on hardware devices (release manager)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#automatic-pull-requests-labeler-pr" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Automatic Pull Requests Labeler (PR)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#full-distro-test-builds-cronjobrelease-manager" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Full distro test builds (cronjob/release manager)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#build-all-artifacts-adminpr" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Build all artifacts (admin/PR)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#lint-on-shell-scripts-pr" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Lint on shell scripts (PR)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#update-tools-in-build-scripts-cronjobadmin" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Update tools in build scripts (cronjob/admin)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#scorecards-security-scan-pr" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Scorecards security scan (PR)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#kernel-hardening-analysis-pr" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Kernel hardening analysis (PR)
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../User-Guide_Board-Support-Rules/" class="md-nav__link">
|
|
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Board Support Rules
|
|
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/armbian/documentation/edit/main/docs/Process_CI.md" title="Edit this page" class="md-content__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1 23H12v-2.1l6.1-6.1z"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/armbian/documentation/raw/main/docs/Process_CI.md" title="View source of this page" class="md-content__button md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 18c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1m0-3c-2.73 0-5.06 1.66-6 4 .94 2.34 3.27 4 6 4s5.06-1.66 6-4c-.94-2.34-3.27-4-6-4m0 6.5a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5M9.27 20H6V4h7v5h5v4.07c.7.08 1.36.25 2 .49V8l-6-6H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h4.5a8.2 8.2 0 0 1-1.23-2"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
<h1 id="automation-for-developers-and-maintainers">Automation for developers and maintainers<a class="headerlink" href="#automation-for-developers-and-maintainers" title="Permanent link">¶</a></h1>
|
|
<p>Core automation for generating images for release are held at <a class="magiclink magiclink-github magiclink-repository" href="https://github.com/armbian/os" title="GitHub Repository: armbian/os">armbian/os</a></p>
|
|
<h2 id="prepare-build-lists">Prepare build lists<a class="headerlink" href="#prepare-build-lists" title="Permanent link">¶</a></h2>
|
|
<h3 id="recommended-images">Recommended images<a class="headerlink" href="#recommended-images" title="Permanent link">¶</a></h3>
|
|
<p>Recommended images on download pages are defined via regular expression mapping file <a href="https://github.com/armbian/os/blob/main/exposed.map">https://github.com/armbian/os/blob/main/exposed.map</a> (for changes sent PR to this file)</p>
|
|
<p>Example:</p>
|
|
<div class="language-text highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Text Only</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1"></a>bananapim7/archive/Armbian_[0-9].*Bananapim7_noble_vendor_[0-9]*.[0-9]*.[0-9]*_gnome-kisak_desktop.img.xz
|
|
</span><span id="__span-0-2"><a id="__codelineno-0-2" name="__codelineno-0-2"></a>bananapim7/archive/Armbian_[0-9].*Bananapim7_bookworm_vendor_[0-9]*.[0-9]*.[0-9]*_minimal.img.xz
|
|
</span></code></pre></div></td></tr></table></div>
|
|
<p><img alt="Standard support images" src="../images/standard-support-images.png" /></p>
|
|
<h3 id="build-templates">Build templates<a class="headerlink" href="#build-templates" title="Permanent link">¶</a></h3>
|
|
<p>They have definitions on what kind of images we want to build - for section or for one specific board:</p>
|
|
<div class="language-yaml highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">YAML</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-1-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-1-2">2</a></span>
|
|
<span class="normal"><a href="#__codelineno-1-3">3</a></span>
|
|
<span class="normal"><a href="#__codelineno-1-4">4</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1"></a><span class="l l-Scalar l-Scalar-Plain">userpatches/targets-release-apps.template</span>
|
|
</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2"></a><span class="l l-Scalar l-Scalar-Plain">userpatches/targets-release-community-maintained.template</span>
|
|
</span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3"></a><span class="l l-Scalar l-Scalar-Plain">userpatches/targets-release-nightly.template</span>
|
|
</span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4"></a><span class="l l-Scalar l-Scalar-Plain">userpatches/targets-release-standard-support.template</span>
|
|
</span></code></pre></div></td></tr></table></div>
|
|
<p>From those templates we are <a href="https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438">autogenerating</a> YAML files, which are passed to build matrix as input. Make sure to review generated YAML files if they have wanted build targets with correct exensions enabled.</p>
|
|
<h3 id="grouping-logic">Grouping logic<a class="headerlink" href="#grouping-logic" title="Permanent link">¶</a></h3>
|
|
<p>Boards are automatically divided into sections and each section is appendend to certain build scenario (minimal Debian image, Ubuntu testing with KDE, …), which is defined in template.</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th style="text-align: left;">Section</th>
|
|
<th style="text-align: left;">Condition</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align: left;">standard-support-slow-hdmi</td>
|
|
<td style="text-align: left;">HAS_VIDEO_OUTPUT = yes AND ARCH = armhf</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left;">standard-support-fast-hdmi</td>
|
|
<td style="text-align: left;">HAS_VIDEO_OUTPUT = yes AND ARCH = arm64</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left;">standard-support-headless</td>
|
|
<td style="text-align: left;">HAS_VIDEO_OUTPUT = no</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align: left;">standard-support-riscv64</td>
|
|
<td style="text-align: left;">ARCH = riscv64</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Example: if you want automated images without a desktop, add <code>HAS_VIDEO_OUTPUT=no</code> in board config file. Automation will only build two CLI images, Ubuntu server and Debian minimal. Which is suitable for hardware that will most likely be used headless.</p>
|
|
<h3 id="blacklisting">Blacklisting<a class="headerlink" href="#blacklisting" title="Permanent link">¶</a></h3>
|
|
<p>Autogeneration is excluded for boards that are on blacklists:</p>
|
|
<div class="language-yaml highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">YAML</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1">1</a></span>
|
|
<span class="normal"><a href="#__codelineno-2-2">2</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="l l-Scalar l-Scalar-Plain">userpatches/targets-automation.blacklist</span>
|
|
</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2"></a><span class="l l-Scalar l-Scalar-Plain">userpatches/targets-automation-nightly.blacklist</span>
|
|
</span></code></pre></div></td></tr></table></div>
|
|
<p>We do this if we are not happy with the automation outcomes and want to define build targets in the template.</p>
|
|
<h3 id="extensions">Extensions<a class="headerlink" href="#extensions" title="Permanent link">¶</a></h3>
|
|
<p>Each board variant can have additional extensions and they are defined in this file:</p>
|
|
<div class="language-text highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Text Only</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1"></a>userpatches/targets-extensions.map
|
|
</span></code></pre></div></td></tr></table></div>
|
|
<p>Example:</p>
|
|
<div class="language-text highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Text Only</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-4-1">1</a></span></pre></div></td><td class="code"><div><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1"></a>khadas-edge2,legacy:vendor:,ENABLE_EXTENSIONS="image-output-oowow,v4l2loopback-dkms,mesa-vpu"
|
|
</span></code></pre></div></td></tr></table></div>
|
|
<h3 id="testing">Testing<a class="headerlink" href="#testing" title="Permanent link">¶</a></h3>
|
|
<p>Unfortunatelly this part does not have testing at PR stage.</p>
|
|
<h2 id="prepare-standard-support-images-for-release">Prepare Standard Support images for release<a class="headerlink" href="#prepare-standard-support-images-for-release" title="Permanent link">¶</a></h2>
|
|
<details class="info" open="open">
|
|
<summary>Info</summary>
|
|
<p>Manual executing permissions are tied to <a href="/Process_Contribute/#release-manager">release manager role</a>.</p>
|
|
</details>
|
|
<p><a href="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml"><img alt="Build Standard Support Images" src="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml/badge.svg" /></a></p>
|
|
<p>This build workflow is executed manually when making:</p>
|
|
<ul>
|
|
<li>a set of images for specific device</li>
|
|
<li>a set of images for specific maintainer</li>
|
|
<li>a full set of stable release images (default)</li>
|
|
</ul>
|
|
<p><strong>Notes</strong>:</p>
|
|
<ul>
|
|
<li>this process prepares images for release without pushing them to the download pages</li>
|
|
<li>you can only generate images that are defined in <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-standard-support.yaml">targets-release-standard-support.yaml</a> build lists!</li>
|
|
<li>images generation workflows are compiled and are pretty much the same, just with different defaults</li>
|
|
</ul>
|
|
<h3 id="1-open-workflow-and-click">1. Open <a href="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-standard-support.yml">workflow</a> and click<a class="headerlink" href="#1-open-workflow-and-click" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Run Workflow" src="../images/run-workflow.png" /></p>
|
|
<h3 id="2-select-board">2. Select board<a class="headerlink" href="#2-select-board" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Workflow" src="../images/complete-artifact-matrix-standard-support.png" /></p>
|
|
<p><strong>Bump version</strong>: Select if you want to trigger system wide version bump.
|
|
<strong>Version override</strong>: Set version under which you want to release images.</p>
|
|
<p>Images versions are stored in JSON files:
|
|
- <a href="https://github.com/armbian/os/blob/main/stable.json">https://github.com/armbian/os/blob/main/stable.json</a>
|
|
- <a href="https://github.com/armbian/os/blob/main/nightly.json">https://github.com/armbian/os/blob/main/nightly.json</a></p>
|
|
<h3 id="3-run-workflow">3. Run workflow<a class="headerlink" href="#3-run-workflow" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Build" src="../images/run-worflow-button.png" /></p>
|
|
<p><strong>(Workflow takes around 15 minutes to complete. In case of network issues it can also take hours)</strong></p>
|
|
<p>Generated images are uploaded to incoming folder <a href="https://rsync.armbian.com/incoming/">https://rsync.armbian.com/incoming/</a> under <strong>your GitHub username</strong> and once they are confirmed working, please notify <a href="https://github.com/igorpecovnik">@igorpecovnik</a> to move them to official download pages. Once images are moved to <a href="https://www.armbian.com/download/">main download section</a>, automation refreshes download pages index within 15-30 minutes.</p>
|
|
<h3 id="aditional-options">Aditional options<a class="headerlink" href="#aditional-options" title="Permanent link">¶</a></h3>
|
|
<p>Generates stable images defined in <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-standard-support.yaml">targets-release-standard-support.yaml</a>. </p>
|
|
<p>We are generating several images for each download / hardware target. They are automatically sorted by sections:</p>
|
|
<ul>
|
|
<li>Desktop releases</li>
|
|
<li>Server and IOT releases</li>
|
|
<li>Dedicated applications</li>
|
|
</ul>
|
|
<p>Images generation can be customized:</p>
|
|
<ul>
|
|
<li>Framework build branch<ul>
|
|
<li>main (make images from trunk)</li>
|
|
<li>vXX.X (previous stable release)</li>
|
|
</ul>
|
|
</li>
|
|
<li>Bump Version (system wide version bump)</li>
|
|
<li>Version override (in case you don’t want to use latest)</li>
|
|
<li>Board (make images for one board only)</li>
|
|
<li>Maintainer (make images for selected maintainer)</li>
|
|
</ul>
|
|
<h2 id="prepare-application-images-for-release-release-manager">Prepare application images for release (release manager)<a class="headerlink" href="#prepare-application-images-for-release-release-manager" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-apps.yml"><img alt="Build Dedicated Application Images" src="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-apps.yml/badge.svg" /></a></p>
|
|
<p>This build workflow is executed manually when making:</p>
|
|
<ul>
|
|
<li>a set of application images for specific device</li>
|
|
<li>a set of application images for specific maintainer</li>
|
|
<li>a full set of application images (default)</li>
|
|
</ul>
|
|
<p><strong>Notes</strong>:</p>
|
|
<ul>
|
|
<li><strong>application images are released 10-15 minutes after build finishes succesfully</strong></li>
|
|
<li>you can only generate images for applications that are defined in <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-apps.yaml">targets-release-apps.yaml</a> build lists!</li>
|
|
<li>images generation workflows are compiled and are pretty much the same, just with different defaults</li>
|
|
</ul>
|
|
<h3 id="1-open-workflow-and-click_1">1. Open <a href="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-apps.yml">workflow</a> and click<a class="headerlink" href="#1-open-workflow-and-click_1" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Run Workflow" src="../images/run-workflow.png" /></p>
|
|
<h3 id="2-select-board_1">2. Select board<a class="headerlink" href="#2-select-board_1" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Workflow" src="../images/complete-artifact-matrix-standard-support.png" /></p>
|
|
<p><strong>Version override</strong>: Use this feature if you want to keep them under the same version, but not lower then <a href="https://docs.armbian.com/Release_Changelog/#changelog">last released</a>.</p>
|
|
<h3 id="3-run-workflow_1">3. Run workflow<a class="headerlink" href="#3-run-workflow_1" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Build" src="../images/run-worflow-button.png" /></p>
|
|
<p><strong>(Workflow takes around 15 minutes to complete. In case of network issues it can also take hours)</strong></p>
|
|
<p>Generated images are hosted at GitHub <a href="https://github.com/armbian/distribution/releases">https://github.com/armbian/distribution/releases</a> and released at once. Automation refreshes download pages within 15-30 minutes after/if workflow finished succesfully.</p>
|
|
<p><img alt="Dedicated Application Images" src="../images/dedicated-applications.png" /></p>
|
|
<h3 id="aditional-options_1">Aditional options<a class="headerlink" href="#aditional-options_1" title="Permanent link">¶</a></h3>
|
|
<p>Generates dedicated application images defined in <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-apps.yaml">targets-release-apps.yaml</a>. This file is <a href="https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438">autogenerated</a> from <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-apps.template">targets-release-apps.template</a>. (You always edit template)</p>
|
|
<p>Images generation can be customized:</p>
|
|
<ul>
|
|
<li>framework build branch<ul>
|
|
<li>main (make images from trunk)</li>
|
|
<li>vXX.X (previous stable release)</li>
|
|
</ul>
|
|
</li>
|
|
<li>Bump Version (system wide version bump)</li>
|
|
<li>Version override (in case you don’t want to use latest)</li>
|
|
<li>board (make images only for one board)</li>
|
|
<li>maintainer (make images for selected maintainer)</li>
|
|
</ul>
|
|
<h2 id="repository-update-cronjobrelease-manager">Repository update (cronjob/release manager)<a class="headerlink" href="#repository-update-cronjobrelease-manager" title="Permanent link">¶</a></h2>
|
|
<p>This pulls packages from build framework OCI cache located at GitHub and from <a href="https://github.com/armbian/os/wiki/Import-3rd-party-packages">various 3rd party repositories</a> such as Chrome, Chromium, Code, Discord, (latest) ZFS, Thunderbird, Zoom, … and pushes them to:</p>
|
|
<ul>
|
|
<li><code>apt.armbian.com</code> (only new packages are added)</li>
|
|
<li><code>beta.armbian.com</code> (whole repository is recreated from scratch)</li>
|
|
</ul>
|
|
<h3 id="1-open-workflow-and-click_2">1. Open <a href="https://github.com/armbian/os/actions/workflows/repository-update.yml">workflow</a> and click<a class="headerlink" href="#1-open-workflow-and-click_2" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Run Workflow" src="../images/run-workflow.png" /></p>
|
|
<p>Action is executed automatically when artifact generations completes. Or manually.</p>
|
|
<h3 id="2-include-artifacts-from-generated-images">2. Include <a href="https://netcup.armbian.com/partial/">artifacts from generated image(s)</a><a class="headerlink" href="#2-include-artifacts-from-generated-images" title="Permanent link">¶</a></h3>
|
|
<p>When
|
|
- [ ] Add <a href="https://netcup.armbian.com/partial/">https://netcup.armbian.com/partial/</a> to stable repo</p>
|
|
<p>is selected.</p>
|
|
<h3 id="3-run-workflow_2">3. Run workflow<a class="headerlink" href="#3-run-workflow_2" title="Permanent link">¶</a></h3>
|
|
<p><img alt="Build" src="../images/run-worflow-button.png" /></p>
|
|
<p><strong>(Workflow takes around 60 minutes to complete)</strong></p>
|
|
<h2 id="build-all-artifacts-cronjob">Build all artifacts (cronjob)<a class="headerlink" href="#build-all-artifacts-cronjob" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-all.yml"><img alt="Build All Artifacts" src="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-all.yml/badge.svg" /></a></p>
|
|
<p>Generates all build artifacts cache for targets defined in <a href="https://github.com/armbian/os/blob/main/userpatches/targets-all-not-eos.yaml">targets-all-not-eos.yaml</a>. This build job runs <strong>every 8 hours</strong> and can also be run manually when needed. </p>
|
|
<p>This build job <strong>needs to be successfully completed</strong> in order to proceed generating any OS images!</p>
|
|
<h2 id="build-rolling-release-images-cronjob">Build Rolling Release Images (cronjob)<a class="headerlink" href="#build-rolling-release-images-cronjob" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-nightly.yml"><img alt="Build Nightly Images" src="https://github.com/armbian/os/actions/workflows/complete-artifact-matrix-nightly.yml/badge.svg" /></a></p>
|
|
<p>Generates all nighly (Rolling Release) images defined in <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.yaml">targets-release-nightly.yaml</a>. This file is <a href="https://github.com/armbian/os/blob/main/.github/workflows/recreate-matrix.yml#L147-L438">autogenerated</a> from <a href="https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.template">targets-release-nightly.template</a>. </p>
|
|
<p>This build job runs every day at 9 a.m. UTC and can also be run manually when needed. Download pages are refreshed <a href="https://github.com/armbian/os/actions/workflows/webindex-update.yml">automatically</a> after successful build.</p>
|
|
<p><img alt="Build" src="../images/rolling-releases.png" /></p>
|
|
<h2 id="watchdog-cronjob">Watchdog (cronjob)<a class="headerlink" href="#watchdog-cronjob" title="Permanent link">¶</a></h2>
|
|
<p>Runs every 15 minutes and re-trigger <a href="https://github.com/armbian/os/blob/main/.github/workflows/watchdog.yml#L26">failed builds</a> six (6) times before finally gives out. This addresses various instabilities when building many artifacts on different hardware: </p>
|
|
<ul>
|
|
<li>network timeouts</li>
|
|
<li>artifact download failure</li>
|
|
<li>loop devices allocation failure</li>
|
|
<li>runner running low on space</li>
|
|
</ul>
|
|
<h2 id="smoke-tests-on-hardware-devices-release-manager">Smoke tests on hardware devices (release manager)<a class="headerlink" href="#smoke-tests-on-hardware-devices-release-manager" title="Permanent link">¶</a></h2>
|
|
<p>Smoke testing is preliminary testing to reveal simple failures severe enough to, for example, reject a prospective software release. Our test case is constructed of three steps:</p>
|
|
<p><img alt="Smoke" src="../images/smoke-tests.png" /></p>
|
|
<ul>
|
|
<li>powering test equipment, consistent from several network switches, power supplies and dozens of hardware platforms</li>
|
|
<li>running upgrade, reboot, repository switch, reboot, … tests in parallel</li>
|
|
<li>uploading a test report as build artifact following by powering the devices off.</li>
|
|
</ul>
|
|
<h2 id="automatic-pull-requests-labeler-pr">Automatic Pull Requests Labeler (PR)<a class="headerlink" href="#automatic-pull-requests-labeler-pr" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/build/actions/workflows/labeler.yml"><img alt="Automatic Labeler" src="https://github.com/armbian/build/actions/workflows/labeler.yml/badge.svg" /></a></p>
|
|
<p>Automatically label new pull request based on the paths of files which are being changed. Configuration file can be found in:</p>
|
|
<div class="language-text highlight"><table class="highlighttable"><tr><th colspan="2" class="filename"><span class="filename">Text Only</span></th></tr><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><code> .github/labeler.yml
|
|
</code></pre></div></td></tr></table></div>
|
|
<h2 id="full-distro-test-builds-cronjobrelease-manager">Full distro test builds (cronjob/release manager)<a class="headerlink" href="#full-distro-test-builds-cronjobrelease-manager" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/os/actions/workflows/full-distro-build-and-test.yml"><img alt="Build Nightly Images" src="https://github.com/armbian/os/actions/workflows/full-distro-build-and-test.yml/badge.svg" /></a></p>
|
|
<p>Generates all supported build combinations (minimal, cli, desktops) for x86 architecture to check package level changes inconsistency and dependencies.</p>
|
|
<p>Options:</p>
|
|
<ul>
|
|
<li>Framework build branch<ul>
|
|
<li><strong>main</strong></li>
|
|
<li>testing_branch (string)</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<h2 id="build-all-artifacts-adminpr">Build all artifacts (admin/PR)<a class="headerlink" href="#build-all-artifacts-adminpr" title="Permanent link">¶</a></h2>
|
|
<p>Generates artifacts at Pull Requests code. Build starts when label of Pull Request is set to “Build”. Requires administration privileges.</p>
|
|
<h2 id="lint-on-shell-scripts-pr">Lint on shell scripts (PR)<a class="headerlink" href="#lint-on-shell-scripts-pr" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/build/actions/workflows/pr-lint-scripts.yml"><img alt="Lint On Shell Scripts" src="https://github.com/armbian/build/actions/workflows/pr-lint-scripts.yml/badge.svg" /></a></p>
|
|
<p><img alt="Lint" src="../images/linterror.png" /></p>
|
|
<p>Run <a href="https://github.com/koalaman/shellcheck">ShellCheck</a> on changed shell scripts and report problems within. Linting runs automatically on pull requests.</p>
|
|
<h2 id="update-tools-in-build-scripts-cronjobadmin">Update tools in build scripts (cronjob/admin)<a class="headerlink" href="#update-tools-in-build-scripts-cronjobadmin" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/build/actions/workflows/update-tools.yml"><img alt="Update Tools in Scripts" src="https://github.com/armbian/build/actions/workflows/update-tools.yml/badge.svg" /></a></p>
|
|
<p>Some of our scripts download tools from a repo. These cannot be bumped by Dependabot, so this workflow is a self-created Dependabot to bump versions of those tools to stay up-to-date. This workflow only creates a PR if the version was actually updated. To add a new tool, it just needs to be added to the matrix <a href="https://github.com/armbian/build/blob/main/.github/workflows/update-tools.yml">in the script</a> by filling out all the variables.</p>
|
|
<h2 id="scorecards-security-scan-pr">Scorecards security scan (PR)<a class="headerlink" href="#scorecards-security-scan-pr" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/build/actions/workflows/scorecard.yml"><img alt="Scorecards Security Scan" src="https://github.com/armbian/build/actions/workflows/scorecard.yml/badge.svg" /></a></p>
|
|
<p><a href="https://github.com/ossf/scorecard#what-is-scorecards">Scorecards</a> is an automated tool that assesses a number of important heuristics (“checks”) associated with software security and assigns each check a score of 0-10. You can use these scores to understand specific areas to improve in order to strengthen the security posture of your project. You can also assess the risks that dependencies introduce, and make informed decisions about accepting these risks, evaluating alternative solutions, or working with the maintainers to make improvements.</p>
|
|
<h2 id="kernel-hardening-analysis-pr">Kernel hardening analysis (PR)<a class="headerlink" href="#kernel-hardening-analysis-pr" title="Permanent link">¶</a></h2>
|
|
<p><a href="https://github.com/armbian/build/actions/workflows/pr-kernel-security-analysis.yml"><img alt="Kernel Hardening Analysis" src="https://github.com/armbian/build/actions/workflows/pr-kernel-security-analysis.yml/badge.svg" /></a></p>
|
|
<p>This <a href="https://github.com/a13xp0p0v/kconfig-hardened-check/blob/master/README.md">analysis</a> checks kernel configs and run if changed. There are plenty of security hardening options for the Linux kernel. A lot of them are not enabled by the major distros. We have to enable these options ourselves to make our systems more secure.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
|
|
Back to top
|
|
</button>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
<div class="md-copyright__highlight">
|
|
Copyright © 2013 - 2024 Armbian.com
|
|
</div>
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
<div class="md-social">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://github.com/armbian" target="_blank" rel="noopener" title="github.com" class="md-social__link">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://www.armbian.com/" target="_blank" rel="noopener" title="www.armbian.com" class="md-social__link">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1v16.2c0 22.1-17.9 40-40 40h-16c-1.1 0-2.2 0-3.3-.1-1.4.1-2.8.1-4.2.1L416 512h-24c-22.1 0-40-17.9-40-40v-88c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v88c0 22.1-17.9 40-40 40h-55.9c-1.5 0-3-.1-4.5-.2-1.2.1-2.4.2-3.6.2h-16c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9.1-2.8v-69.7h-32c-18 0-32-14-32-32.1 0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7l255.4 224.5c8 7 12 15 11 24"/></svg>
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="https://twitter.com/armbian" target="_blank" rel="noopener" title="twitter.com" class="md-social__link">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253"/></svg>
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script id="__config" type="application/json">{"base": "..", "features": ["content.action.edit", "content.action.view", "content.code.copy", "navigation.tabs", "navigation.top", "navigation.expand", "toc.integrate"], "search": "../assets/javascripts/workers/search.f8cc74c7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
|
|
|
|
|
|
<script src="../assets/javascripts/bundle.c8b220af.min.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |