@@ -45,4 +45,41 @@ different `core`.
4545- ` release ` : a GitHub release in the Neon OS repository, identified by the ` build version ` .
4646
4747## Build System
48- Neon OS images are built using recipes in [ neon-debos] ( https://github.com/NeonGeckoCom/neon_debos ) .
48+ [ Neon OS] ( https://github.com/neongeckocom/neon-os ) images are built using recipes
49+ in [ neon-debos] ( https://github.com/NeonGeckoCom/neon_debos ) .
50+ OS images and updates are served via HTTP server with a predictable directory
51+ structure. The build scripts are located in the [ neon-os repository] ( https://github.com/neongeckocom/neon-os ) .
52+
53+ ## Build Image Action
54+ An OS build is triggered via GitHub actions and generally runs on a self-hosted
55+ runner. This action may build for multiple platforms (i.e. rpi4, opi5) and may
56+ build for multiple [ cores] ( ../neon_os/index.md#glossary ) . The following inputs
57+ are accepted:
58+ - REF: ` beta ` or ` stable ` to indicate if the build is a beta or stable release.
59+ > This was previously labelled as ` dev ` and ` master ` as it was tied to the
60+ ` core ` branch used in the build.
61+ - DEBOS_REF: branch of ` neon_debos ` to check out, generally ` dev ` or ` master `
62+ - CORE_REF: branch of the [ core repository] ( ../neon_os/index.md#glossary ) to
63+ check out, generally ` dev ` or ` master `
64+ - PLATFORMS: space-delimited list of platforms to build for (i.e. ` "rpi4 opi5" ` )
65+ - UPLOAD_URL: base URL outputs may be downloaded from (i.e. ` "https://2222.us" ` )
66+ - OUTPUT_DIR: directory to move outputs to, may be a local or a remote directory
67+ spec (i.e. ` /var/www/html/neon_images ` , ` <remote>:/<path_to_directory> ` )
68+ - DO_CORE: boolean value, if true then build a release with the ` debian-neon-image ` recipe
69+ - DO_NODE: boolean value, if true then build a release with the ` debian-node-image ` recipe
70+
71+ ## Build Outputs
72+ Output images are served via HTTP server, based on the inputs to the
73+ [ build image action] ( #build-image-action ) .
74+
75+ An output image looks like:
76+ ``` text
77+ <core>/<platform>/<ref>/<build_id>_<timestamp>.img.xz
78+ node / opi5 / dev / debian-node-image-opi5_2024-06-06_16_25.img.xz
79+ ```
80+
81+ Update files include a ` squashfs ` update and ` json ` metadata:
82+ ``` text
83+ <core>/<platform>/updates/<ref>/<build_id>_<timestamp>.<ext>
84+ node / opi5 /updates/ dev / debian-node-image-opi5_2024-06-06_16_25.squashfs
85+ ```
0 commit comments